mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Added documentation of the new :prefix option.
Signed-off-by: Michael Koziarski <michael@koziarski.com>
This commit is contained in:
committed by
Michael Koziarski
parent
0cb382cb6f
commit
32a58d2afc
@@ -47,6 +47,31 @@ class Module
|
||||
# Foo.new.min # => 4
|
||||
# Foo.new.max # => 11
|
||||
#
|
||||
# Delegates can optionally be prefixed using the <tt>:prefix</tt> option. If the value
|
||||
# is <tt>true</tt>, the delegate methods are prefixed with the name of the object being
|
||||
# delegated to.
|
||||
#
|
||||
# Person = Struct.new(:name, :address)
|
||||
#
|
||||
# class Invoice < Struct.new(:client)
|
||||
# delegate :name, :address, :to => :client, :prefix => true
|
||||
# end
|
||||
#
|
||||
# john_doe = Person.new("John Doe", "Vimmersvej 13")
|
||||
# invoice = Invoice.new(john_doe)
|
||||
# invoice.client_name # => "John Doe"
|
||||
# invoice.client_address # => "Vimmersvej 13"
|
||||
#
|
||||
# It is also possible to supply a custom prefix.
|
||||
#
|
||||
# class Invoice < Struct.new(:client)
|
||||
# delegate :name, :address, :to => :client, :prefix => :customer
|
||||
# end
|
||||
#
|
||||
# invoice = Invoice.new(john_doe)
|
||||
# invoice.customer_name # => "John Doe"
|
||||
# invoice.customer_address # => "Vimmersvej 13"
|
||||
#
|
||||
def delegate(*methods)
|
||||
options = methods.pop
|
||||
unless options.is_a?(Hash) && to = options[:to]
|
||||
|
||||
Reference in New Issue
Block a user