Sha256: 3e70d32dd202c22714d23c47fee32b85584e9da3d2ac07b4e4dec624b35a616f

Contents?: true

Size: 1.41 KB

Versions: 50

Compression:

Stored size: 1.41 KB

Contents

# -*- coding: utf-8 -*-
#
# Copyright 2013 whiteleaf. All rights reserved.
#

require "yaml"
require "singleton"
require_relative "narou"

#
# ユーザープロファイルに保存するのでいつでも反映される設定
#
class GlobalSetting
  include Singleton

  def self.get
    instance
  end

  def initialize
    @global_settings = load_settings
  end

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

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

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

  #
  # .narou 以下に保存されている *.yaml の拡張子を取った部分をキーとして
  # 設定をハッシュとして取得する
  #
  def load_settings
    settings = {}
    global_setting_dir = Narou.get_global_setting_dir
    if global_setting_dir
      Dir.glob(File.join(global_setting_dir, "*.yaml")) do |path|
        name = File.basename(path, ".yaml")
        settings[name] = YAML.load_file(path)
      end
    end
    settings
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
narou-1.5.11 lib/globalsetting.rb
narou-1.5.10.1 lib/globalsetting.rb
narou-1.5.10 lib/globalsetting.rb
narou-1.5.9 lib/globalsetting.rb
narou-1.5.8 lib/globalsetting.rb
narou-1.5.7.1 lib/globalsetting.rb
narou-1.5.7 lib/globalsetting.rb
narou-1.5.6.1 lib/globalsetting.rb
narou-1.5.6 lib/globalsetting.rb
narou-1.5.5.1 lib/globalsetting.rb
narou-1.5.5 lib/globalsetting.rb
narou-1.5.4 lib/globalsetting.rb
narou-1.5.3 lib/globalsetting.rb
narou-1.5.2.1 lib/globalsetting.rb
narou-1.5.2 lib/globalsetting.rb
narou-1.5.1 lib/globalsetting.rb
narou-1.5.0.2 lib/globalsetting.rb
narou-1.5.0.1 lib/globalsetting.rb
narou-1.5.0 lib/globalsetting.rb
narou-1.4.6 lib/globalsetting.rb