このコードは、Rails Crash Course book からのものです。
class Accessor
def self.accessor(attr)
class_eval "
def #{attr}
@#{attr}
end
def #{attr}=(val)
@#{attr} = val
end
"
end
end
のサブクラスは、 getter および setter メソッドを生成したい属性名でメソッドAccessor
を呼び出すことにより、getter および setter メソッドを作成できるという考え方です。accessor
class Element < Accessor
accessor :name
...
しかし、なぜ in を使用するのself
ですdef self.accessor(attr)
か?