From 4831a895c445f650c9daf0b445136ceb653f781b Mon Sep 17 00:00:00 2001 From: Francesco Rodriguez Date: Mon, 7 May 2012 22:47:35 -0500 Subject: [PATCH] added docs to alias_attribute method --- .../lib/active_model/attribute_methods.rb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 97a83e58af..59977b6142 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -180,6 +180,37 @@ module ActiveModel undefine_attribute_methods end + + # Allows you to make aliases for attributes. + # + # For example: + # + # class Person + # + # include ActiveModel::AttributeMethods + # attr_accessor :name + # attribute_method_prefix 'clear_' + # + # define_attribute_methods [:name] + # + # private + # + # def clear_attribute(attr) + # send("#{attr}=", nil) + # end + # end + # + # class Person + # attr_accessor :nickname + # + # alias_attribute :nickname, :name + # end + # + # person = Person.new + # person.nickname = "Bob" + # person.nickname # => "Bob" + # person.clear_nickname + # person.nickname # => nil def alias_attribute(new_name, old_name) attribute_method_matchers.each do |matcher| matcher_new = matcher.method_name(new_name).to_s