Hashを読み込んで初期化するクラス
メモ
class Test
attr_accessor :hello,:version
def initialize(args)
args.each do |k,v|
s = k.to_s
s = s + "="
send(s.intern,v)
end
end
end
t = Test.new({:hello => 'Hello world' , :version => 1})
p t.hello
p t.version
テスト
$ ruby test.rb
"Hello world"
1
ちなみに最初こういうのを考えたのだがRubyの神様はこれは許してくれないようだ
当面の目的には上で充分なのでいいんだけど.
class Test2
def initialize(args)
args.each do |k,v|
attr k,true
s = k.to_s
s = s + "="
send(s.intern,v)
end
end
end
追記
やり方を教えてもらいましたfrom http://nokada.jin.gr.jp/t/?02051229
勉強になりました.thanks!