Class: JIJI::Configuration
- Inherits:
-
Object
- Object
- JIJI::Configuration
- Defined in:
- lib/jiji/configuration.rb
Overview
設定値
Instance Method Summary collapse
-
#get(names, default) ⇒ Object
- 値を取得する。 names
- 値を示すパス 例) [:foo, :var] default
- 値が存在しない場合の初期値 return
-
値.
-
#initialize(configuration_file = nil) ⇒ Configuration
constructor
- コンストラクタ configuration_file
-
設定ファイルのパス.
-
#key?(names) ⇒ Boolean
- 値が存在するか評価する。 names
- 値を示すパス 例) [:foo, :var] return
-
値があればtrue.
-
#load ⇒ Object
データをロードする.
-
#set(names, value = nil) ⇒ Object
- 値を設定する。 ※設定した値は元のファイルには反映されない。プログラムを終了すると失われる。 names
- 値を示すパス 例) [:foo, :var] value
-
値.
Constructor Details
#initialize(configuration_file = nil) ⇒ Configuration
コンストラクタ
- configuration_file
-
設定ファイルのパス
14 15 16 17 |
# File 'lib/jiji/configuration.rb', line 14 def initialize( configuration_file=nil ) @configuration_file=configuration_file load end |
Instance Method Details
#get(names, default) ⇒ Object
値を取得する。
- names
-
値を示すパス 例) [:foo, :var]
- default
-
値が存在しない場合の初期値
- return
-
値
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/jiji/configuration.rb', line 35 def get( names, default ) v = names.inject(@conf) {|conf,i| if conf.kind_of?(Hash) conf[i] else break default end } v == nil ? default : v end |
#key?(names) ⇒ Boolean
値が存在するか評価する。
- names
-
値を示すパス 例) [:foo, :var]
- return
-
値があればtrue
66 67 68 69 70 71 72 73 74 75 |
# File 'lib/jiji/configuration.rb', line 66 def key?( names ) v = names.inject(@conf) {|conf,i| if conf.kind_of?(Hash) conf[i] else break nil end } v != nil end |
#load ⇒ Object
データをロードする
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/jiji/configuration.rb', line 20 def load if @configuration_file && File.exist?( @configuration_file ) FileLock.new( @configuration_file ).readlock {|f| tmp = YAML.load f @conf = key_to_sym( tmp ) } else @conf = {} end end |
#set(names, value = nil) ⇒ Object
値を設定する。 ※設定した値は元のファイルには反映されない。プログラムを終了すると失われる。
- names
-
値を示すパス 例) [:foo, :var]
- value
-
値
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/jiji/configuration.rb', line 50 def set( names, value=nil) key = names.pop names.inject(@conf) {|conf, i| if conf[i].kind_of?(Hash) conf[i] elsif conf[i] == nil conf[i] = {} else raise "illegal key." end }[key] = value end |