Sha256: cd51ed9ecf250f00d1aadfbd69f7057698c2a6d474bbb58d6b39c1775776d5cb
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
require 'keychain' require 'userinput' module Keylime ## # Easy wrapper around getting and setting secrets class Credential def initialize(params = {}) @options = params end def get keychain_segment.where(@options).first end def get!(message) get || prompt(message) end def set(value) delete! keychain_segment.create(@options.merge(password: value)).first end def delete! get && keychain_segment.where(@options).first.delete nil end private def prompt(message) set UserInput.new( message: message, secret: true, attempts: 3, validation: /.+/ ).ask end def keychain @keychain ||= if @options[:keychain] Keychain.open(@options[:keychain]) else Keychain end end def key_type @options[:server] ? :internet_passwords : :generic_passwords end def keychain_segment @keychain_segment ||= keychain.send(key_type) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
keylime-0.0.1-x86_64-darwin-15 | lib/keylime/credential.rb |