class MastercoinWallet::Config
Constants
- DEFAULT
Attributes
options[RW]
Public Class Methods
new()
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 6 def initialize self.ensure_config! config = File.open(MastercoinWallet::FILE_PATH).read() if config.empty? self.options = DEFAULT else self.options = ActiveSupport::HashWithIndifferentAccess.new(JSON.load(config)).reverse_merge(DEFAULT) end end
Public Instance Methods
get_encrypted_key(key, password)
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 26 def get_encrypted_key(key, password) aes = OpenSSL::Cipher.new("AES-256-CFB") digest_key = Digest::SHA2.hexdigest(password) aes.key = digest_key begin aes.update(self.get_key(key).unpack('m')[0]) rescue ArgumentError end end
get_key(key)
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 63 def get_key(key) return self.options[key] if has_key?(key) end
has_key?(key)
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 67 def has_key?(key) self.options.has_key?(key) end
has_options?()
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 77 def has_options? !self.options.empty? end
method_missing(method, *args)
click to toggle source
Calls superclass method
# File lib/mastercoin-wallet/config.rb, line 18 def method_missing(method, *args) if self.options.has_key?(method) self.get_key(method) else super(method, args) end end
save()
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 71 def save config = File.open(MastercoinWallet::FILE_PATH, "w") config.write( JSON.dump(self.options) ) config.close end
set_encrypted_key(key, value, password)
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 37 def set_encrypted_key(key, value, password) aes = OpenSSL::Cipher.new("AES-256-CFB") digest_key = Digest::SHA2.hexdigest(password) aes.encrypt aes.key = digest_key encrypted_value = [aes.update(value)].pack('m') set_key(key, encrypted_value) end
set_key(key, value)
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 59 def set_key(key, value) self.options[key] = value end
set_key!(key, value)
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 54 def set_key!(key, value) set_key(key, value) self.save end
set_keys!(options = {})
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 49 def set_keys!(options = {}) self.options.merge!(options) self.save end
Protected Instance Methods
ensure_config!()
click to toggle source
# File lib/mastercoin-wallet/config.rb, line 82 def ensure_config! unless Dir.exists?(MastercoinWallet::CONFIG_PATH) FileUtils.mkdir_p(MastercoinWallet::CONFIG_PATH) end unless File.exists?(MastercoinWallet::FILE_PATH) FileUtils.touch(MastercoinWallet::FILE_PATH) end end