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