class Otpui::Settings

Public Class Methods

config_dir() click to toggle source
# File lib/otpui/settings.rb, line 9
def self.config_dir
  dir = "#{ENV['HOME']}/.config/otpui"
end
load() click to toggle source
# File lib/otpui/settings.rb, line 46
def self.load
  return @@instance if defined? @@instance
  Log.debug "Loading settings from #{config_dir}/settings.yaml"
  file = "#{config_dir}/settings.yaml"
  if File.exist? file
    begin
      @@instance = Settings.new YAML.load_file(file)
    rescue TypeError
      @@instance = Settings.new
    rescue Exception => e
      Log.error "Error loading settings: #{e}\n#{e.backtrace}"
    end
  else
    @@instance = Settings.new
    @@instance.save
  end
  @@instance
end
new(yaml = {}) click to toggle source
# File lib/otpui/settings.rb, line 5
def initialize(yaml = {})
  @settings = yaml
end

Public Instance Methods

[](key) click to toggle source
# File lib/otpui/settings.rb, line 25
def [](key)
  @settings[key]
end
[]=(key, val) click to toggle source
# File lib/otpui/settings.rb, line 29
def []=(key, val)
  @settings[key] = val
end
add_secret(issuer, secret) click to toggle source
# File lib/otpui/settings.rb, line 41
def add_secret(issuer, secret)
  secrets.merge! issuer => secret
  save
end
each(&block) click to toggle source
# File lib/otpui/settings.rb, line 33
def each(&block)
  @settings.each &block
end
save() click to toggle source
# File lib/otpui/settings.rb, line 13
def save
  dir = Settings.config_dir
  unless File.directory?(dir)
    Log.debug "Creating settings directory: #{dir}"
    Dir.mkdir dir
  end
  Log.debug "Saving settings to #{File.join(dir,'settings.yaml')}"
  File.open(File.join(dir,"settings.yaml"), "w") do |f|
    f.puts @settings.to_yaml
  end
end
secrets() click to toggle source
# File lib/otpui/settings.rb, line 37
def secrets
  @settings["secrets"]
end