Class: Kodo::Secrets::Store
- Inherits:
-
Object
- Object
- Kodo::Secrets::Store
- Defined in:
- lib/kodo/secrets/store.rb
Instance Method Summary collapse
- #delete(name) ⇒ Object
- #exists?(name) ⇒ Boolean
- #get(name) ⇒ Object
-
#initialize(passphrase:, secrets_dir: nil) ⇒ Store
constructor
A new instance of Store.
- #names ⇒ Object
- #put(name, value, source: 'user', validated: false) ⇒ Object
Constructor Details
#initialize(passphrase:, secrets_dir: nil) ⇒ Store
Returns a new instance of Store.
9 10 11 12 13 14 |
# File 'lib/kodo/secrets/store.rb', line 9 def initialize(passphrase:, secrets_dir: nil) @secrets_dir = secrets_dir || Kodo.home_dir @passphrase = passphrase FileUtils.mkdir_p(@secrets_dir) @secrets = load_secrets end |
Instance Method Details
#delete(name) ⇒ Object
36 37 38 39 40 |
# File 'lib/kodo/secrets/store.rb', line 36 def delete(name) removed = @secrets.delete(name) save_secrets if removed !removed.nil? end |
#exists?(name) ⇒ Boolean
32 33 34 |
# File 'lib/kodo/secrets/store.rb', line 32 def exists?(name) @secrets.key?(name) end |
#get(name) ⇒ Object
27 28 29 30 |
# File 'lib/kodo/secrets/store.rb', line 27 def get(name) entry = @secrets[name] entry&.fetch('value', nil) end |
#names ⇒ Object
42 43 44 |
# File 'lib/kodo/secrets/store.rb', line 42 def names @secrets.keys end |
#put(name, value, source: 'user', validated: false) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/kodo/secrets/store.rb', line 16 def put(name, value, source: 'user', validated: false) @secrets[name] = { 'value' => value, 'source' => source, 'validated' => validated, 'stored_at' => Time.now.iso8601 } save_secrets @secrets[name] end |