module Mingo::Properties::ClassMethods
Attributes
properties[R]
Public Instance Methods
inherited(klass)
click to toggle source
Calls superclass method
# File lib/mingo/properties.rb, line 37 def inherited(klass) super (@subclasses ||= Array.new) << klass klass.instance_variable_set('@properties', self.properties.dup) end
property(name, options = nil)
click to toggle source
# File lib/mingo/properties.rb, line 14 def property(name, options = nil) self.properties << name.to_sym setter_name = "#{name}=" unless method_defined?(setter_name) methods = Module.new methods.module_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{name}(&block) self.[](#{name.to_s.inspect}, &block) end def #{setter_name}(value) self.[]=(#{name.to_s.inspect}, value) end RUBY include methods end if defined? @subclasses @subclasses.each { |klass| klass.property(property_name, options) } end end