Module: RailsConfigurator
- Defined in:
- lib/rails_configurator.rb,
lib/rails_configurator/version.rb
Defined Under Namespace
Modules: InstanceMethods
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
Class Method Details
.extend(config, property, options = {}, &block) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/rails_configurator.rb', line 9 def RailsConfigurator.extend(config, property, ={}, &block) config.class.class_eval do define_method(property) do ivar = "@#{property}" instance_variable_get(ivar) || instance_variable_set(ivar, (begin defaults = [:defaults] || {} settings_path = [:path] || Rails.root.join("config", "#{property}.yml") settings = YAML.load_file(settings_path)[Rails.env.to_s] settings.reverse_merge!(defaults) o = OpenStruct.new(settings) o.class_eval(&block) if block_given? o end)) end end end |