module GSuper::Settings

Public Class Methods

default() click to toggle source
# File lib/gsuper/settings.rb, line 7
def default
  {
    "font" => "Sans Bold 24",
    "super-x" => 0,
    "super-y" => 0,
    "super-width" => 640,
    "super-height" => 480,
    "text" => "",
    "text-color" => [1.0, 0.5, 0.0],
    "shadow-color" => [0.0, 0.0, 1.0],
  }
end
filepath() click to toggle source
# File lib/gsuper/settings.rb, line 21
def filepath
  ENV['HOME'] + '/.config/gsuper/settings.tml'
end
load() click to toggle source
# File lib/gsuper/settings.rb, line 26
def load
  begin
    user = TOML.load_file(filepath)
  rescue Errno::ENOENT
    # 設定ファイルが見付からないが、別に構わない
    user = {}
  rescue TOML::ParseError => e
    STDERR.puts "Error: corrupt settings file, ignoring"
    STDERR.puts e
    user = {}
  end
  return default.merge(user)
end
save(settings) click to toggle source
# File lib/gsuper/settings.rb, line 41
def save(settings)
  difference = (settings.to_a - default.to_a).to_h
  toml = TOML.dump(difference)
  FileUtils.mkdir_p(File.dirname(filepath))
  File.open(filepath, "w") do |f|
    f.write(toml)
  end
end

Private Instance Methods

default() click to toggle source
# File lib/gsuper/settings.rb, line 7
def default
  {
    "font" => "Sans Bold 24",
    "super-x" => 0,
    "super-y" => 0,
    "super-width" => 640,
    "super-height" => 480,
    "text" => "",
    "text-color" => [1.0, 0.5, 0.0],
    "shadow-color" => [0.0, 0.0, 1.0],
  }
end
filepath() click to toggle source
# File lib/gsuper/settings.rb, line 21
def filepath
  ENV['HOME'] + '/.config/gsuper/settings.tml'
end
load() click to toggle source
# File lib/gsuper/settings.rb, line 26
def load
  begin
    user = TOML.load_file(filepath)
  rescue Errno::ENOENT
    # 設定ファイルが見付からないが、別に構わない
    user = {}
  rescue TOML::ParseError => e
    STDERR.puts "Error: corrupt settings file, ignoring"
    STDERR.puts e
    user = {}
  end
  return default.merge(user)
end
save(settings) click to toggle source
# File lib/gsuper/settings.rb, line 41
def save(settings)
  difference = (settings.to_a - default.to_a).to_h
  toml = TOML.dump(difference)
  FileUtils.mkdir_p(File.dirname(filepath))
  File.open(filepath, "w") do |f|
    f.write(toml)
  end
end