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