puts [ ].blank? #=> true
puts { 1 => 2}.blank? #=> false
puts " cat ".blank? #=> false
puts "".blank? #=> true
puts " ".blank? #=> true
puts nil.blank? #=> true
# present? is the opposite of blank?
puts nil.present? #=> false
user = User.find(1) # Those methods are also available on Struct objects puts user.to_xml puts user.to_yaml puts user.to_json # Creates a JavaScript hash Hash.from_xml(xml_string) # => a Hash object
# Usually you write a map block like this
post_ids = posts.map { |post| post.id }
# But Rails implements Symbol#to_proc to provide this shortcut:
post_ids = posts.map(&:id)
map.connect "/shop/summary" , :controller => "store", :action => "summary" map.connect "/titles/buy/:id" , :controller => "store", :action => "add_to_cart" map.with_options(:controller => "store") do |store_map| store_map.connect "/shop/summary", :action => "summary" store_map.connect "/titles/buy/:id", :action => "add_to_cart" end
groups = posts.group_by {|post| post.author_id} #=> Hash with author ids as keys
us_states = State.find(:all)
state_lookup = us_states.index_by {|state| state.short_name} #=> Hash with short name as keys
total_orders = Order.find(:all).sum {|order| order.value }
total_orders = Order.find(:all).sum(&:value)
%w(foo bar).inject({}) { |str, hsh| hsh[str] = str.upcase; hsh } #=> {'foo' => 'FOO', 'bar' => 'BAR'}
%w(foo bar).each_with_object({}) { |str, hsh| hsh[str] = str.upcase } #=> {'foo' => 'FOO', 'bar' => 'BAR'}
# NOTE: does not work with immutable objects such as numbers
(1..5).each_with_object(1) { |value, memo| memo *= value } # => 1
(1..5).inject(1) { |value, memo| memo *= value; memo } # => 120
string = "Ruby on Rails"
puts string.at(2) #=> 'b'
pust string.from(5) #=> 'on Rails'
puts string.to(3) #=> 'Ruby'
puts string.first(4) #=> 'Ruby'
puts string.last(4) #=> 'ails'
puts string.starts_with?("R") #=> true
puts string.ends_with?("Perl") #=> false
count = Hash.new(0)
string.each_char {|ch| count[ch] += 1}
"person".pluralize #=> people
"people".singularize #=> person
"first_name".humanize #=> First Name
"ruby on rails".titleize #=> Ruby On Rails
20.bytes #=> 20
20.megabytes #=> 20971520
20.seconds
20.hours
20.months
20.years
20.minutes.ago
20.weeks.from_now
20.minutes.until("2007-12-01 12:00".to_time)
time = Time.parse("2007-01-01 13:00")
time.at_beginning_of_day
time.at_beginning_of_week
time.at_beginning_of_month
"åäö".size #=> 6 "åäö".chars.size #=> 3 "åäö".upcase #=> "åäö" "åäö".chars.upcase.inspect #=> <ActiveSupport::Multibyte::Chars:0x33589c0 @string="ÅÄÖ"> "åäö".chars.upcase.to_s #=> "ÅÄÖ"