2014-05-12 :-(
_ 午後
1300 デバッグしTARI
_ [hash][ハッシュ][ruby][プロパティ][アクセッサ]ハッシュのキーをプロパティのように扱う
よく attr_accessor してるんだけど数が増えると壊滅する。
# coding: utf-8
class PConfig
attr_accessor :foo
attr_accessor :bar
attr_accessor :baz
def initialize(config_path)
config = eval(File.open(config_path).read)
@foo = config[:foo]
@bar = config[:bar]
@baz = config[:baz]
end
end
def main(argv)
conf_path = argv[0]
config = PConfig.new(conf_path)
puts config.foo
puts config.bar
puts config.baz
end
main(ARGV)
こういうのを別途用意
# coding: utf-8
Config = {
:foo => 'FOO',
:bar => 'BAR',
:baz => 'GAZ',
}
実行
>ruby prop0.rb prop.conf FOO BAR GAZ
method_missing でイケるらしい。うーん。ハッシュキーをメソッド名(プロパティ)としてハッシュにアクセス(読出、そして代入も)するには - 別館 子子子子子子(ねこのここねこ)
prop.conf で symbol を使ってるので to_sym しておく。
# coding: utf-8
class PConfig
def initialize(config_path)
@config = eval(File.open(config_path).read)
end
def method_missing(name)
return @config[name.to_sym] if @config.has_key?(name.to_sym)
super.method_missing(name)
end
end
def main(argv)
conf_path = argv[0]
config = PConfig.new(conf_path)
puts config.foo
puts config.bar
puts config.baz
end
main(ARGV)
>ruby prop1.rb prop.conf FOO BAR GAZ
[ツッコミを入れる]





