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.
-
#set(names, value = nil) ⇒ Object
- 値を設定する。 ※設定した値は元のファイルには反映されない。プログラムを終了すると失われる。 names
- 値を示すパス 例) [:foo, :var] value
-
値.
Constructor Details
#initialize(configuration_file = nil) ⇒ Configuration
コンストラクタ
- configuration_file
-
設定ファイルのパス
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/jiji/configuration.rb', line 14 def initialize( configuration_file=nil ) 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 |
Instance Method Details
#get(names, default) ⇒ Object
値を取得する。
- names
-
値を示すパス 例) [:foo, :var]
- default
-
値が存在しない場合の初期値
- return
-
値
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jiji/configuration.rb', line 29 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
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/jiji/configuration.rb', line 60 def key?( names ) v = names.inject(@conf) {|conf,i| if conf.kind_of?(Hash) conf[i] else break nil end } v != nil end |
#set(names, value = nil) ⇒ Object
値を設定する。※設定した値は元のファイルには反映されない。プログラムを終了すると失われる。
- names
-
値を示すパス 例) [:foo, :var]
- value
-
値
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/jiji/configuration.rb', line 44 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 |