Method: FlashFlow::Config.configure!

Defined in:
lib/flash_flow/config.rb

.configure!(config_file) ⇒ Object

Raises:



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/flash_flow/config.rb', line 31

def self.configure!(config_file)
  raise AlreadyConfigured if instance.instance_variable_get(:@configured)

  template = ERB.new File.read(config_file)
  yaml = YAML.load template.result(binding)
  config = defaults.merge(symbolize_keys!(yaml))

  missing_attrs = []
  ATTRIBUTES.each do |attr_name|
    missing_attrs << attr_name unless config.has_key?(attr_name)
    instance.instance_variable_set("@#{attr_name}", config[attr_name])
  end

  instance.instance_variable_set(:@logger, get_logger(instance.log_file))

  raise IncompleteConfiguration.new("Missing attributes:\n #{missing_attrs.join("\n ")}") unless missing_attrs.empty?

  instance.instance_variable_set(:@configured, true)
end