rubyでオブジェクトのプロパティに Obj.propでアクセスするにはアクセサを定義すれば良いが、 そのアクセサを動的に定義したい。 要はActiveRecordのmodelのような事がしたいわけ。 具体的にはコンストラクタのパラメータにhashを与え、 hashが持つキー全てのアクセサを持ったクラスの作成。 調べると instance_eval を使えばいけそうだ。 実装 class MyClass def initialize(h = {}) @attr = h.dup h.keys.each do|prop| self.instance_eval %Q{ def #{prop.to_s} @attr["#{prop}".intern] || "" end def #{prop.to_s}=(arg) @attr["#{prop}".intern] = arg end } end e