Class: ENVied::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/envied/configuration.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}, &block) ⇒ Configuration



5
6
7
8
9
# File 'lib/envied/configuration.rb', line 5

def initialize(options = {}, &block)
  @defaults_enabled = options.fetch(:enable_defaults, false)
  @coercer = options.fetch(:coercer, Coercer.new)
  instance_eval(&block) if block_given?
end

Instance Attribute Details

#coercerObject (readonly)

Returns the value of attribute coercer.



3
4
5
# File 'lib/envied/configuration.rb', line 3

def coercer
  @coercer
end

#current_groupObject (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_enabledObject (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(options = {}) ⇒ Object



11
12
13
14
15
16
# File 'lib/envied/configuration.rb', line 11

def self.load(options = {})
  envfile = File.expand_path('Envfile')
  new(options).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 = nil, &block) ⇒ Object



18
19
20
# File 'lib/envied/configuration.rb', line 18

def enable_defaults!(value = nil, &block)
  @defaults_enabled = (value.nil? ? block : value)
end

#group(name, &block) ⇒ Object



37
38
39
40
41
42
# File 'lib/envied/configuration.rb', line 37

def group(name, &block)
  @current_group = name.to_sym
  yield
ensure
  @current_group = nil
end

#variable(name, type = :String, options = {}) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/envied/configuration.rb', line 28

def variable(name, type = :String, options = {})
  unless coercer.supported_type?(type)
    raise ArgumentError,
      "Variable type (of #{name}) should be one of #{coercer.supported_types}"
  end
  options[:group] = current_group if current_group
  variables << ENVied::Variable.new(name, type, options)
end

#variablesObject



44
45
46
# File 'lib/envied/configuration.rb', line 44

def variables
  @variables ||= []
end