久しく触ってなかったRuby。
ちょっとした事情で触ることに。
evalを使ってみました。文字列でrubyのプログラムを渡してやれば実行してくれる代物っぽい?
試しに
eval "puts \"Hello world\""
と書いて実行するとHello worldが出た。
ふむ
attr_accessorみたいなのを作るには
class MyBase def my_acessor name eval <<-E def #{name}() return @#{name} end def #{name}= param @#{name} = param end E end end a = MyBase.new a.my_acessor "hoge" a.hoge = 100; puts a.hoge
こうすればいいのかぁ?
あってるのかは謎だけど似たような動きはしてるっぽい