Class: TingYun::Configuration::YamlSource

Inherits:
DottedHash
  • Object
show all
Defined in:
lib/ting_yun/configuration/yaml_source.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from DottedHash

#inspect, symbolize, #to_hash

Constructor Details

#initialize(path, env) ⇒ YamlSource

Returns a new instance of YamlSource.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ting_yun/configuration/yaml_source.rb', line 12

def initialize(path, env)
  config = {}
  @failures = []

  begin
    @file_path = vaildate_config_file_path(path)
    return unless @file_path

    ::TingYun::Agent.logger.info("Reading configuration from #{path} (#{Dir.pwd})")

    raw_file = File.read(@file_path)
    erb_file = process_erb(raw_file)
    config = process_yaml(erb_file, env, config, @file_path)
  rescue ScriptError, StandardError => e
    log_failure("Failed to read or parse configuration file at #{path}", e)
  end
  booleanify_values(config, 'nbs.agent_enabled', 'enabled')
  super(config, true)
end

Instance Attribute Details

#failuresObject

Returns the value of attribute failures.



10
11
12
# File 'lib/ting_yun/configuration/yaml_source.rb', line 10

def failures
  @failures
end

#file_pathObject

Returns the value of attribute file_path.



10
11
12
# File 'lib/ting_yun/configuration/yaml_source.rb', line 10

def file_path
  @file_path
end

Instance Method Details

#failed?Boolean

Returns:



32
33
34
# File 'lib/ting_yun/configuration/yaml_source.rb', line 32

def failed?
  !@failures.empty?
end