Class: ENVied::Configuration
- Inherits:
-
Object
- Object
- ENVied::Configuration
- Defined in:
- lib/envied/configuration.rb
Instance Attribute Summary collapse
-
#coercer ⇒ Object
readonly
Returns the value of attribute coercer.
-
#current_group ⇒ Object
readonly
Returns the value of attribute current_group.
-
#defaults_enabled ⇒ Object
readonly
Returns the value of attribute defaults_enabled.
Class Method Summary collapse
Instance Method Summary collapse
- #defaults_enabled? ⇒ Boolean
- #enable_defaults!(value = true, &block) ⇒ Object
- #group(*names, &block) ⇒ Object
-
#initialize(**options, &block) ⇒ Configuration
constructor
A new instance of Configuration.
- #variable(name, type = :string, **options) ⇒ Object
- #variables ⇒ Object
Constructor Details
#initialize(**options, &block) ⇒ Configuration
Returns a new instance of Configuration.
5 6 7 8 9 |
# File 'lib/envied/configuration.rb', line 5 def initialize(**, &block) @coercer = .fetch(:coercer, Coercer.new) @defaults_enabled = .fetch(:enable_defaults, defaults_enabled_default) instance_eval(&block) if block_given? end |
Instance Attribute Details
#coercer ⇒ Object (readonly)
Returns the value of attribute coercer.
3 4 5 |
# File 'lib/envied/configuration.rb', line 3 def coercer @coercer end |
#current_group ⇒ Object (readonly)
Returns the value of attribute current_group.
3 4 5 |
# File 'lib/envied/configuration.rb', line 3 def current_group @current_group end |
#defaults_enabled ⇒ Object (readonly)
Returns the value of attribute defaults_enabled.
3 4 5 |
# File 'lib/envied/configuration.rb', line 3 def defaults_enabled @defaults_enabled end |
Class Method Details
.load(file = 'Envfile', **options) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/envied/configuration.rb', line 11 def self.load(file='Envfile', **) envfile = File.(file) new(**).tap do |v| v.instance_eval(File.read(envfile), envfile) end end |
Instance Method Details
#defaults_enabled? ⇒ Boolean
22 23 24 25 26 |
# File 'lib/envied/configuration.rb', line 22 def defaults_enabled? @defaults_enabled.respond_to?(:call) ? @defaults_enabled.call : @defaults_enabled end |
#enable_defaults!(value = true, &block) ⇒ Object
18 19 20 |
# File 'lib/envied/configuration.rb', line 18 def enable_defaults!(value = true, &block) @defaults_enabled = block_given? ? block.call : value end |
#group(*names, &block) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/envied/configuration.rb', line 36 def group(*names, &block) names.each do |name| @current_group = name.to_sym yield end ensure @current_group = nil end |
#variable(name, type = :string, **options) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/envied/configuration.rb', line 28 def variable(name, type = :string, **) unless coercer.supported_type?(type) raise ArgumentError, "#{type.inspect} is not a supported type. Should be one of #{coercer.supported_types}" end [:group] = current_group if current_group variables << ENVied::Variable.new(name, type, **) end |
#variables ⇒ Object
45 46 47 |
# File 'lib/envied/configuration.rb', line 45 def variables @variables ||= [] end |