Class: Bastille::CLI::Vault
- Inherits:
-
Thor
- Object
- Thor
- Bastille::CLI::Vault
- Includes:
- Common
- Defined in:
- lib/bastille/cli/vault.rb
Class Method Summary collapse
Instance Method Summary collapse
- #delete(space_vault, key = nil) ⇒ Object
- #get(space_vault) ⇒ Object
- #list ⇒ Object
- #set(space_vault, key_value) ⇒ Object
Class Method Details
.description ⇒ Object
10 11 12 |
# File 'lib/bastille/cli/vault.rb', line 10 def self.description 'Provides access to your vaults' end |
.usage ⇒ Object
6 7 8 |
# File 'lib/bastille/cli/vault.rb', line 6 def self.usage 'vault [TASK]' end |
Instance Method Details
#delete(space_vault, key = nil) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/bastille/cli/vault.rb', line 61 def delete(space_vault, key = nil) space, vault = space_vault.split(':') return say('Expected a : delimited space and vault argument (ie. defunkt:resque)', :red) unless space && vault question = if key.nil? "Are you sure you want to delete the #{space}:#{vault} vault?" else "Are you sure you want to remove the #{key} key from the #{space}:#{vault} vault?" end if yes?(question) response = Client.new(store).delete(space, vault, key) if response.success? say response.body, :green else say response., :red end else say 'OK, nothing was deleted.', :green end end |
#get(space_vault) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/bastille/cli/vault.rb', line 42 def get(space_vault) space, vault = space_vault.split(':') return say('Expected a : delimited space and vault argument (ie. defunkt:resque)', :red) unless space && vault response = Client.new(store).get(space, vault) if response.success? if response.body.empty? say 'There are no keys in this vault.', :yellow else response.body.sort.each do |key, value| say "#{key}=#{value}" end end else say response., :red end end |
#list ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/bastille/cli/vault.rb', line 15 def list if (response = Client.new(store).vaults).success? response.body.sort.each do |owner, vaults| say " #{owner}:" vaults.sort.each do |vault| say " #{vault}" end end else say response., :red end end |
#set(space_vault, key_value) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bastille/cli/vault.rb', line 29 def set(space_vault, key_value) space, vault = space_vault.split(':') return say('Expected a : delimited space and vault argument (ie. defunkt:resque)', :red) unless space && vault key, value = key_value.split('=') response = Client.new(store).set(space, vault, key, value) if response.success? say "\"#{key} => #{value}\" has been added to the #{space}:#{vault} vault.", :green else say response., :red end end |