mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Allow superclass_delegating_accessor to take a block for initial set.
This commit is contained in:
parent
4bf516e072
commit
ccd1c5e521
1 changed files with 4 additions and 3 deletions
|
@ -26,13 +26,14 @@ class Class
|
|||
end
|
||||
end
|
||||
|
||||
def superclass_delegating_writer(*names)
|
||||
def superclass_delegating_writer(*names, &block)
|
||||
names.each do |name|
|
||||
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
||||
def self.#{name}=(value) # def self.property=(value)
|
||||
@#{name} = value # @property = value
|
||||
end # end
|
||||
EOS
|
||||
self.send("#{name}=", yield) if block_given?
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -42,8 +43,8 @@ class Class
|
|||
# delegate to their superclass unless they have been given a
|
||||
# specific value. This stops the strange situation where values
|
||||
# set after class definition don't get applied to subclasses.
|
||||
def superclass_delegating_accessor(*names)
|
||||
def superclass_delegating_accessor(*names, &block)
|
||||
superclass_delegating_reader(*names)
|
||||
superclass_delegating_writer(*names)
|
||||
superclass_delegating_writer(*names, &block)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue