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