class Aquatone::KeyStore

Constants

KEY_STORE_FILE_LOCATION

Public Class Methods

get(name) click to toggle source
# File lib/aquatone/key_store.rb, line 10
def self.get(name)
  keys[name]
end
key?(name) click to toggle source
# File lib/aquatone/key_store.rb, line 24
def self.key?(name)
  keys.key?(name)
end
keys() click to toggle source
# File lib/aquatone/key_store.rb, line 20
def self.keys
  @keys ||= read_key_store_file
end
reset!() click to toggle source
# File lib/aquatone/key_store.rb, line 28
def self.reset!
  @keys = nil
end
set(name, value) click to toggle source
# File lib/aquatone/key_store.rb, line 14
def self.set(name, value)
  k = keys
  k[name] = value
  write_key_store_file(keys)
end

Private Class Methods

deserialize(keys) click to toggle source
# File lib/aquatone/key_store.rb, line 66
def self.deserialize(keys)
  YAML.parse(keys).to_ruby
rescue Psych::SyntaxError
  fail KeyStoreFileCorrupt, "Key store file contains invalid YAML"
end
key_store_exists?() click to toggle source
# File lib/aquatone/key_store.rb, line 58
def self.key_store_exists?
  File.exists?(KEY_STORE_FILE_LOCATION)
end
key_store_readable?() click to toggle source
# File lib/aquatone/key_store.rb, line 50
def self.key_store_readable?
  File.readable?(KEY_STORE_FILE_LOCATION)
end
key_store_writable?() click to toggle source
# File lib/aquatone/key_store.rb, line 54
def self.key_store_writable?
  File.writable?(KEY_STORE_FILE_LOCATION)
end
read_key_store_file() click to toggle source
# File lib/aquatone/key_store.rb, line 34
def self.read_key_store_file
  return {} unless key_store_exists?
  fail KeyStoreFileNotReadable, "Key store file is not readable" unless key_store_readable?
  deserialize(File.read(KEY_STORE_FILE_LOCATION))
end
serialize(keys) click to toggle source
# File lib/aquatone/key_store.rb, line 62
def self.serialize(keys)
  YAML.dump(keys)
end
write_key_store_file(keys) click to toggle source
# File lib/aquatone/key_store.rb, line 40
def self.write_key_store_file(keys)
  if key_store_exists?
    fail KeyStoreFileNotWritable, "Key store file is not writable" unless key_store_writable?
  end
  File.open(KEY_STORE_FILE_LOCATION, "w") do |file|
    file.write(serialize(keys))
  end
  @keys = nil
end