class Donjon::Commands::Base

Public Class Methods

decl(method_name) click to toggle source
# File lib/donjon/commands/base.rb, line 17
def self.decl(method_name)
  define_method(method_name.to_sym) { |*args| send(method_name.gsub(':','_').to_sym, *args) }
end
start(args) click to toggle source
Calls superclass method
# File lib/donjon/commands/base.rb, line 13
def self.start(args)
  super(args, shell: Shell.instance)
end

Protected Instance Methods

_get_password(message) click to toggle source
# File lib/donjon/commands/base.rb, line 57
def _get_password(message)
  say message, :green
  $stdout.write('> ')
  $stdin.get_password
end
actor() click to toggle source
# File lib/donjon/commands/base.rb, line 41
def actor
  @actor ||= begin
    check_configured
    pem_data = Pathname.new(settings.private_key).read
    password = _get_password("Please enter the password for your private key (#{settings.private_key})")
    key = OpenSSL::PKey::RSA.new(pem_data, password)
    User.new(repo: repo, name: settings.user_name, key: key)
  end
end
check_configured() click to toggle source
# File lib/donjon/commands/base.rb, line 27
def check_configured
  return if settings.configured?
  say "Oops, I can't run that until you've configured me.", :red
  say "Run 'vault:init' and I'll help out!"
  exit 1
end
database() click to toggle source
# File lib/donjon/commands/base.rb, line 51
def database
  @database ||= begin
    Database.new(actor: actor)
  end
end
repo() click to toggle source
# File lib/donjon/commands/base.rb, line 34
def repo
  @repo ||= begin
    check_configured
    Repository.new(settings.vault_path)
  end
end
settings() click to toggle source
# File lib/donjon/commands/base.rb, line 23
def settings
  @settings ||= Settings.new
end