Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

fix ActiveModel::AttributeMethods#alias_attribute documentation [ci s…

…kip]
  • Loading branch information...
commit b5b350ad5c1d115a54ab2ebadc44fa2d63ae50bf 1 parent bf3332b
Francesco Rodríguez frodsan authored
Showing with 20 additions and 7 deletions.
  1. +20 −7 activemodel/lib/active_model/attribute_methods.rb
27 activemodel/lib/active_model/attribute_methods.rb
View
@@ -78,8 +78,8 @@ module ClassMethods
# at least the +attr+ argument.
#
# class Person
- #
# include ActiveModel::AttributeMethods
+ #
# attr_accessor :name
# attribute_method_prefix 'clear_'
# define_attribute_methods :name
@@ -114,8 +114,8 @@ def attribute_method_prefix(*prefixes)
# least the +attr+ argument.
#
# class Person
- #
# include ActiveModel::AttributeMethods
+ #
# attr_accessor :name
# attribute_method_suffix '_short?'
# define_attribute_methods :name
@@ -150,8 +150,8 @@ def attribute_method_suffix(*suffixes)
# accept at least the +attr+ argument.
#
# class Person
- #
# include ActiveModel::AttributeMethods
+ #
# attr_accessor :name
# attribute_method_affix prefix: 'reset_', suffix: '_to_default!'
# define_attribute_methods :name
@@ -176,14 +176,27 @@ def attribute_method_affix(*affixes)
# Allows you to make aliases for attributes.
#
# class Person
+ # include ActiveModel::AttributeMethods
+ #
# attr_accessor :name
+ # attribute_method_suffix '_short?'
+ # define_attribute_methods :name
+ #
# alias_attribute :nickname, :name
+ #
+ # private
+ #
+ # def attribute_short?(attr)
+ # send(attr).length < 5
+ # end
# end
#
# person = Person.new
- # person.nickname = 'Bob'
- # person.nickname # => "Bob"
- # person.name # => "Bob"
+ # person.name = 'Bob'
+ # person.name # => "Bob"
+ # person.nickname # => "Bob"
+ # person.name_short? # => true
+ # person.nickname_short? # => true
def alias_attribute(new_name, old_name)
attribute_method_matchers.each do |matcher|
matcher_new = matcher.method_name(new_name).to_s
@@ -200,8 +213,8 @@ def alias_attribute(new_name, old_name)
# methods, or they will not hook in.
#
# class Person
- #
# include ActiveModel::AttributeMethods
+ #
# attr_accessor :name, :age, :address
# attribute_method_prefix 'clear_'
#
Please sign in to comment.
Something went wrong with that request. Please try again.