method

thread_mattr_accessor

Importance_2
v6.0.0 - Show latest stable - 0 notes - Class: Module
thread_mattr_accessor(*syms, instance_reader: true, instance_writer: true, instance_accessor: true) public

Defines both class and instance accessors for class attributes.

class Account
  thread_mattr_accessor :user
end

Account.user = "DHH"
Account.user     # => "DHH"
Account.new.user # => "DHH"

If a subclass changes the value, the parent class’ value is not changed. Similarly, if the parent class changes the value, the value of subclasses is not changed.

class Customer < Account
end

Customer.user = "Rafael"
Customer.user # => "Rafael"
Account.user  # => "DHH"

To omit the instance writer method, pass instance_writer: false. To omit the instance reader method, pass instance_reader: false.

class Current
  thread_mattr_accessor :user, instance_writer: false, instance_reader: false
end

Current.new.user = "DHH"  # => NoMethodError
Current.new.user          # => NoMethodError

Or pass instance_accessor: false, to omit both instance methods.

class Current
  thread_mattr_accessor :user, instance_accessor: false
end

Current.new.user = "DHH"  # => NoMethodError
Current.new.user          # => NoMethodError
Show source
Register or log in to add new notes.