instance method attr_accessor_with_default

Ruby on Rails 3.1.12

Since v2.2.3 Last seen in v3.1.12

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12

Signature

attr_accessor_with_default(sym, default = Proc.new)

Declare an attribute accessor with an initial default return value.

To give attribute :age the initial value 25:

class Person
  attr_accessor_with_default :age, 25
end

person = Person.new
person.age # => 25

person.age = 26
person.age # => 26

To give attribute :element_name a dynamic default value, evaluated in scope of self:

attr_accessor_with_default(:element_name) { name.underscore }

Parameters

sym req
default opt = Proc.new
Source
# File activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb, line 21
  def attr_accessor_with_default(sym, default = Proc.new)
    ActiveSupport::Deprecation.warn "attr_accessor_with_default is deprecated. Use Ruby instead!"
    define_method(sym, block_given? ? default : Proc.new { default })
    module_eval(<<-EVAL, __FILE__, __LINE__ + 1)
      def #{sym}=(value)                          # def age=(value)
        class << self; attr_accessor :#{sym} end  #   class << self; attr_accessor :age end
        @#{sym} = value                           #   @age = value
      end                                         # end
    EVAL
  end

Defined in activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb line 21 · View on GitHub · Improve this page · Find usages on GitHub

Defined in Module

Type at least 2 characters to search.

↑↓ navigate · open · esc close