Class: Kamal::Configuration::Env
- Inherits:
-
Object
- Object
- Kamal::Configuration::Env
- Defined in:
- lib/kamal/configuration/env.rb
Defined Under Namespace
Classes: Tag
Instance Attribute Summary collapse
-
#clear ⇒ Object
readonly
Returns the value of attribute clear.
-
#secrets_file ⇒ Object
readonly
Returns the value of attribute secrets_file.
-
#secrets_keys ⇒ Object
readonly
Returns the value of attribute secrets_keys.
Class Method Summary collapse
Instance Method Summary collapse
- #args ⇒ Object
-
#initialize(clear:, secrets_keys:, secrets_file:) ⇒ Env
constructor
A new instance of Env.
- #merge(other) ⇒ Object
- #secrets ⇒ Object
- #secrets_directory ⇒ Object
- #secrets_io ⇒ Object
Constructor Details
#initialize(clear:, secrets_keys:, secrets_file:) ⇒ Env
Returns a new instance of Env.
12 13 14 15 16 |
# File 'lib/kamal/configuration/env.rb', line 12 def initialize(clear:, secrets_keys:, secrets_file:) @clear = clear @secrets_keys = secrets_keys @secrets_file = secrets_file end |
Instance Attribute Details
#clear ⇒ Object (readonly)
Returns the value of attribute clear.
2 3 4 |
# File 'lib/kamal/configuration/env.rb', line 2 def clear @clear end |
#secrets_file ⇒ Object (readonly)
Returns the value of attribute secrets_file.
2 3 4 |
# File 'lib/kamal/configuration/env.rb', line 2 def secrets_file @secrets_file end |
#secrets_keys ⇒ Object (readonly)
Returns the value of attribute secrets_keys.
2 3 4 |
# File 'lib/kamal/configuration/env.rb', line 2 def secrets_keys @secrets_keys end |
Class Method Details
.from_config(config:, secrets_file: nil) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/kamal/configuration/env.rb', line 5 def self.from_config(config:, secrets_file: nil) secrets_keys = config.fetch("secret", []) clear = config.fetch("clear", config.key?("secret") || config.key?("tags") ? {} : config) new clear: clear, secrets_keys: secrets_keys, secrets_file: secrets_file end |
Instance Method Details
#args ⇒ Object
18 19 20 |
# File 'lib/kamal/configuration/env.rb', line 18 def args [ "--env-file", secrets_file, *argumentize("--env", clear) ] end |
#merge(other) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/kamal/configuration/env.rb', line 34 def merge(other) self.class.new \ clear: @clear.merge(other.clear), secrets_keys: @secrets_keys | other.secrets_keys, secrets_file: secrets_file end |
#secrets ⇒ Object
26 27 28 |
# File 'lib/kamal/configuration/env.rb', line 26 def secrets @secrets ||= secrets_keys.to_h { |key| [ key, ENV.fetch(key) ] } end |
#secrets_directory ⇒ Object
30 31 32 |
# File 'lib/kamal/configuration/env.rb', line 30 def secrets_directory File.dirname(secrets_file) end |