module ConcreteAttributes
Constants
- VERSION
Public Instance Methods
concrete_attribute(*attr)
click to toggle source
# 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)
click to toggle source
# 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