Class: Dry::Credentials::Extension
- Inherits:
-
Object
- Object
- Dry::Credentials::Extension
- Defined in:
- lib/dry/credentials/extension.rb
Instance Method Summary collapse
-
#[](setting) ⇒ String
Query settings.
-
#[]=(setting, value) ⇒ Object
Change settings.
-
#edit!(env = nil) ⇒ self
Edit credentials file.
-
#initialize ⇒ Extension
constructor
A new instance of Extension.
-
#load! ⇒ self
private
Load the credentials once.
-
#reload! ⇒ self
Reload the credentials.
Constructor Details
#initialize ⇒ Extension
Returns a new instance of Extension.
7 8 9 10 |
# File 'lib/dry/credentials/extension.rb', line 7 def initialize @settings = Dry::Credentials::Settings.new @injected = [] end |
Instance Method Details
#[](setting) ⇒ String
Query settings
54 55 56 |
# File 'lib/dry/credentials/extension.rb', line 54 def [](setting) @settings.send(setting) end |
#[]=(setting, value) ⇒ Object
Change settings
62 63 64 |
# File 'lib/dry/credentials/extension.rb', line 62 def []=(setting, value) @settings.send(setting, value) end |
#edit!(env = nil) ⇒ self
Edit credentials file
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dry/credentials/extension.rb', line 36 def edit!(env=nil) helpers = Dry::Credentials::Helpers.new(self, env) create = helpers.create? yaml = read_yaml = helpers.read_yaml begin yaml = helpers.edit_yaml yaml end until helpers.yaml_valid? yaml unless yaml == read_yaml helpers.write_yaml yaml puts [helpers.key_ev, ENV[helpers.key_ev]].join('=') if create reload! end end |
#load! ⇒ self
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Load the credentials once
16 17 18 19 20 21 22 |
# File 'lib/dry/credentials/extension.rb', line 16 def load! helpers = Dry::Credentials::Helpers.new(self) if @injected.none? && !helpers.create? @injected = Dry::Credentials::YAML.new(helpers.read_yaml).inject_into(self) end self end |
#reload! ⇒ self
Reload the credentials
27 28 29 30 |
# File 'lib/dry/credentials/extension.rb', line 27 def reload! singleton_class.undef_method(@injected.pop) until @injected.empty? self end |