lib/anyway/config.rb in anyway_config-0.3.0 vs lib/anyway/config.rb in anyway_config-0.4.0

- old
+ new

@@ -24,11 +24,11 @@ self.new(name,false).load_from_sources end private def extract_name - self.name[/^(\w+)/].underscore + name[/^(\w+)/].underscore end end def initialize(config_name=nil, do_load=true) @config_name = config_name || self.class.config_name @@ -41,19 +41,19 @@ self end def clear self.class.config_attributes.each do |attr| - self.send("#{attr}=", nil) + send("#{attr}=", nil) end self end def load config = load_from_sources self.class.defaults.deep_dup config.each do |key, val| - self.send("#{key}=",val) + set_value(key, val) end end def load_from_sources(config={}.with_indifferent_access) load_from_file(config) @@ -71,7 +71,15 @@ def load_from_env(config) config.deep_merge! (Anyway.env.send(@config_name) || {}) config end + + private + + # safe way to assing config value + # checks that key exists in config + def set_value(key, val) + send("#{key}=", val) if self.class.config_attributes.include?(key.to_sym) + end end end \ No newline at end of file