Module: Mongoid::Attributes::ClassMethods
- Defined in:
- lib/mongoid/attributes.rb
Instance Method Summary collapse
-
#alias_attribute(name, original) ⇒ Object
Alias the provided name to the original field.
-
#unalias_attribute(name) ⇒ Object
Removes a field alias.
Instance Method Details
#alias_attribute(name, original) ⇒ Object
Alias the provided name to the original field. This will provide an aliased getter, setter, existence check, and all dirty attribute methods.
326 327 328 329 330 331 332 333 334 335 336 337 338 339 |
# File 'lib/mongoid/attributes.rb', line 326 def alias_attribute(name, original) aliased_fields[name.to_s] = original.to_s alias_method name, original alias_method "#{name}=", "#{original}=" alias_method "#{name}?", "#{original}?" alias_method "#{name}_change", "#{original}_change" alias_method "#{name}_changed?", "#{original}_changed?" alias_method "reset_#{name}!", "reset_#{original}!" alias_method "reset_#{name}_to_default!", "reset_#{original}_to_default!" alias_method "#{name}_was", "#{original}_was" alias_method "#{name}_will_change!", "#{original}_will_change!" alias_method "#{name}_before_type_cast", "#{original}_before_type_cast" end |
#unalias_attribute(name) ⇒ Object
Removes a field alias.
344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 |
# File 'lib/mongoid/attributes.rb', line 344 def unalias_attribute(name) unless aliased_fields.delete(name.to_s) raise AttributeError, "Field #{name} is not an aliased field" end remove_method name remove_method "#{name}=" remove_method "#{name}?" remove_method "#{name}_change" remove_method "#{name}_changed?" remove_method "reset_#{name}!" remove_method "reset_#{name}_to_default!" remove_method "#{name}_was" remove_method "#{name}_will_change!" remove_method "#{name}_before_type_cast" end |