Module: ConcreteAttributes
- Defined in:
- lib/concrete_attributes.rb,
lib/concrete_attributes/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
Instance Method Summary collapse
Instance Method Details
#concrete_attribute(*attr) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/concrete_attributes.rb', line 5 def concrete_attribute(*attr) attr.each do |prop| instance_eval %Q{ def #{prop}=(v) @#{prop} = v end def #{prop} return @#{prop} if instance_variable_defined?(:@#{prop}) @#{prop} = concrete_for(self, :#{prop}) end } end end |
#concrete_for(klass, method) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/concrete_attributes.rb', line 20 def concrete_for(klass, method) parent = klass.superclass return unless parent.respond_to?(method) parent.public_send(method) end |