lib/simple_model/attributes.rb in simple_model-1.2.0 vs lib/simple_model/attributes.rb in simple_model-1.2.1

- old
+ new

@@ -71,10 +71,11 @@ new = self.new() new.attributes = session_hash new.set(new.send(:attributes_with_for_init,session_hash)) new end + def defined_attributes @defined_attributes ||= {} end @@ -171,9 +172,20 @@ options = default_attribute_settings.merge(attributes.extract_options!) options[:on_set] = lambda {|obj,val| val.send(method_options[:cast_to]) } if method_options[:cast_to] create_attribute_methods(attributes,options) end module_eval("alias #{method_options[:alias]} #{method}") + end + + # Creates alias setter and getter for the supplied attribute using the supplied alias + # See spec for example. + def alias_attribute(new_alias,attribute) + define_method(new_alias) do + self.send(attribute) + end + define_method("#{new_alias.to_s}=") do |*args, &block| + self.send("#{attribute.to_s}=",*args, &block) + end end end def self.included(base) base.extend(Attributes::ClassMethods) \ No newline at end of file