class Passman::Manager
Constants
- DEFAULT_PATH
Public Class Methods
new(file = nil)
click to toggle source
# File lib/passman/manager.rb, line 9 def initialize(file = nil) @file_path = DEFAULT_PATH @file_path = file unless file.nil? end
Public Instance Methods
add(account, username, password, key)
click to toggle source
# File lib/passman/manager.rb, line 18 def add(account, username, password, key) validate_add_arguments(account, username, password, key) db = database db[account.to_s] = { username: username, password: Passman::Crypto.encrypt(password, key) } store_data(db) end
delete(account)
click to toggle source
# File lib/passman/manager.rb, line 25 def delete(account) raise ArgumentError, 'No account provided.' unless valid?(account) db = database db.delete(account.to_s) store_data(db) end
exist?(account)
click to toggle source
# File lib/passman/manager.rb, line 39 def exist?(account) raise ArgumentError, 'No account provided.' unless valid?(account) !(!database[account.to_s]) end
generate_password(length = 32)
click to toggle source
# File lib/passman/manager.rb, line 14 def generate_password(length = 32) Passman::PasswordGenerator.generate(length) end
get(account, key)
click to toggle source
# File lib/passman/manager.rb, line 32 def get(account, key) validate_get_arguments(account, key) data = database[account.to_s] [account.to_s, { 'username' => data['username'], 'password' => Passman::Crypto.decrypt(data['password'], key) }] end
list()
click to toggle source
# File lib/passman/manager.rb, line 44 def list database end
Private Instance Methods
database()
click to toggle source
# File lib/passman/manager.rb, line 66 def database return JSON.parse(File.read(@file_path)) if File.exist?(@file_path) {} end
store_data(data)
click to toggle source
# File lib/passman/manager.rb, line 71 def store_data(data) File.delete(@file_path) if File.exist?(@file_path) file = File.open(@file_path, 'w+') file.write(JSON.generate(data)) file.close end
valid?(argument)
click to toggle source
# File lib/passman/manager.rb, line 62 def valid?(argument) !(argument.nil? || argument.empty?) end
validate_add_arguments(account, username, password, key)
click to toggle source
# File lib/passman/manager.rb, line 50 def validate_add_arguments(account, username, password, key) raise ArgumentError, 'No account provided.' unless valid?(account) raise ArgumentError, 'No username provided.' unless valid?(username) raise ArgumentError, 'No password provided.' unless valid?(password) raise ArgumentError, 'No key provided.' unless valid?(key) end
validate_get_arguments(account, key)
click to toggle source
# File lib/passman/manager.rb, line 57 def validate_get_arguments(account, key) raise ArgumentError, 'No account provided.' unless valid?(account) raise ArgumentError, 'No key provided.' unless valid?(key) end