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
|