module Soulless::Attributes::ClassMethods
Public Instance Methods
attribute(name, type = nil, options = {})
click to toggle source
Calls superclass method
# File lib/soulless/attributes.rb, line 4 def attribute(name, type = nil, options = {}) super(name, type, options) if super define_attribute_methods(name) define_reader(name) define_writer(name) end
define_reader(attribute)
click to toggle source
# File lib/soulless/attributes.rb, line 13 def define_reader(attribute) define_method(attribute.to_sym) do attribute_set[attribute.to_sym].get(self) end end
define_writer(attribute)
click to toggle source
Calls superclass method
# File lib/soulless/attributes.rb, line 19 def define_writer(attribute) define_method("#{attribute}=".to_sym) do |value| send("#{attribute}_will_change!") unless value == attribute_set[attribute.to_sym].get(self) super(value) end end