Class: Keyring::CLI
- Inherits:
-
Object
- Object
- Keyring::CLI
- Defined in:
- lib/keyring/cli.rb
Instance Method Summary collapse
- #delete(args) ⇒ Object
- #ensure_arg_presence(args, count) ⇒ Object
- #get(args) ⇒ Object
-
#initialize(options = {}) ⇒ CLI
constructor
A new instance of CLI.
- #main ⇒ Object
- #set(args) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ CLI
Returns a new instance of CLI.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/keyring/cli.rb', line 8 def initialize(={}) @options = @method = @arg = nil @opts = Slop.parse(:help => true) do 'Usage: keyring get|set|delete <service> <username> [password (for set)]' on :v, :version, 'Print the version' do puts Keyring::VERSION exit end command 'set' do # FIXME: option to prompt for password run do |opts, args| @method = :set @arg = args end end command 'get' do run do |opts, args| @method = :get @arg = args end end command 'delete' do run do |opts, args| @method = :delete @arg = args end end end end |
Instance Method Details
#delete(args) ⇒ Object
61 62 63 64 65 |
# File 'lib/keyring/cli.rb', line 61 def delete(args) ensure_arg_presence(args, 2) keyring = Keyring.new keyring.delete_password(args[0], args[1]) end |
#ensure_arg_presence(args, count) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/keyring/cli.rb', line 67 def ensure_arg_presence(args, count) 0.upto(count-1) do |i| if !args[i] || args[i].empty? if !@options[:testing] puts @opts exit 1 else raise ArgumentError end end end end |
#get(args) ⇒ Object
56 57 58 59 60 |
# File 'lib/keyring/cli.rb', line 56 def get(args) ensure_arg_presence(args, 2) keyring = Keyring.new puts keyring.get_password(args[0], args[1]) end |
#main ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/keyring/cli.rb', line 42 def main if @method && respond_to?(@method) send(@method, @arg) else puts @opts exit 1 end end |