Trying to understand Ruby a bit better, I ran into this code surfing the Internet:
require 'rubygems'
require 'activeresource'
ActiveResource::Base.logger = Logger.new("#{File.dirname(__FILE__)}/events.log")
class Event < ActiveResource::Base
self.site = "http://localhost:3000"
end
events = Event.find(:all)
puts events.map(&:name)
e = Event.find(1)
e.price = 20.00
e.save
e = Event.create(:name => "Shortest event evar!",
:starts_at => 1.second.ago,
:capacity => 25,
:price => 10.00)
e.destroy
What I'm particularly interested in is how does events.map(&:name)
work? I see that events is an array, and thus it's invoking its map method. Now my question is, where is the block that's being passed to map created? What is the symbol :name in this context? I'm trying to understand how it works.