Class: LocalSetting

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/localsetting.rb

Overview

管理小説のみに適用される設定

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLocalSetting

Returns a new instance of LocalSetting.



19
20
21
# File 'lib/localsetting.rb', line 19

def initialize
  @local_settings = load_settings
end

Class Method Details

.getObject



15
16
17
# File 'lib/localsetting.rb', line 15

def self.get
  instance
end

Instance Method Details

#[](name) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/localsetting.rb', line 23

def [](name)
  setting = @local_settings[name]
  unless setting
    setting = {}
    @local_settings[name] = setting
  end
  setting
end

#[]=(name, setting) ⇒ Object



32
33
34
# File 'lib/localsetting.rb', line 32

def []=(name, setting)
  @local_settings[name] = setting
end

#load_settingsObject

.narou 以下に保存されている *.yaml の拡張子を取った部分をキーとして 設定をハッシュとして取得する



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/localsetting.rb', line 52

def load_settings
  settings = {}
  local_setting_dir = Narou.get_local_setting_dir
  if local_setting_dir
    Dir.glob(File.join(local_setting_dir, "*.yaml")) do |path|
      name = File.basename(path, ".yaml")
      settings[name] = YAML.load_file(path)
    end
  end
  settings
end

#save_settings(name = nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/localsetting.rb', line 36

def save_settings(name = nil)
  if name
    save_list = { name => @local_settings[name] }
  else
    save_list = @local_settings
  end
  save_list.each do |sname, setting|
    path = File.join(Narou.get_local_setting_dir, sname + ".yaml")
    File.write(path, YAML.dump(setting))
  end
end