トップ «前の日記(2014-05-11) 最新 次の日記(2014-05-13)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|

2014-05-12 :-(

_ 午前

0530 起床

0700 食堂

0830 出勤 && デバッグしTARI

_ 午後

1300 デバッグしTARI

_

1700 残業アワー

1800 退勤

2100 飯。鶏丼

2200 おやつ。レピドール の菓子

IMG_4855

IMG_4858

_ [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

_ 買い物

amazon

B00JXQU872