class Keylime::Credential
Easy wrapper around getting and setting secrets
Public Class Methods
new(params = {})
click to toggle source
# File lib/keylime/credential.rb, line 16 def initialize(params = {}) @options = params end
Public Instance Methods
delete!()
click to toggle source
# File lib/keylime/credential.rb, line 33 def delete! get && keychain_segment.where(@options).first.delete nil end
get()
click to toggle source
# File lib/keylime/credential.rb, line 20 def get keychain_segment.where(@options).first end
get!(message)
click to toggle source
# File lib/keylime/credential.rb, line 24 def get!(message) get || prompt(message) end
set(value)
click to toggle source
# File lib/keylime/credential.rb, line 28 def set(value) delete! keychain_segment.create(@options.merge(password: value)) end
Private Instance Methods
key_type()
click to toggle source
# File lib/keylime/credential.rb, line 56 def key_type @options[:server] ? :internet_passwords : :generic_passwords end
keychain()
click to toggle source
# File lib/keylime/credential.rb, line 49 def keychain return @keychain if @keychain @keychain = FileKeychain.new(@options[:keychain]) unless Keylime::ENABLED @keychain ||= Keychain.open(@options[:keychain]) if @options[:keychain] @keychain ||= Keychain end
keychain_segment()
click to toggle source
# File lib/keylime/credential.rb, line 60 def keychain_segment @keychain_segment ||= keychain.send(key_type) end
prompt(message)
click to toggle source
# File lib/keylime/credential.rb, line 40 def prompt(message) set UserInput.new( message: message, secret: true, attempts: 3, validation: /.+/ ).ask end