概要
Module#attr_writer(*name) -> nil
詳細
つまり
class Person attr_writer :name def initialize(name) @name = name end end
は
class Person def initialize(name) @name = name end def name=(name) @name = name end end
と同じです。
サンプルコード
require 'pp' class Person attr_writer :name, :age def initialize(name, age) @name, @age = name, age end end person = Person.new('tanaka', 33) pp person person.name = 'suzuki' person.age = 40 pp person
出力
$ ruby module_attr_writer.rb #<Person:0x28d16a8 @age=33, @name="tanaka"> #<Person:0x28d16a8 @age=40, @name="suzuki">