Class: RailsSettings::Configuration
- Inherits:
-
Object
- Object
- RailsSettings::Configuration
- Defined in:
- lib/rails-settings/configuration.rb
Instance Method Summary collapse
-
#initialize(*args, &block) ⇒ Configuration
constructor
A new instance of Configuration.
- #key(name, options = {}) ⇒ Object
Constructor Details
#initialize(*args, &block) ⇒ Configuration
Returns a new instance of Configuration.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/rails-settings/configuration.rb', line 3 def initialize(*args, &block) = args. klass = args.shift keys = args raise ArgumentError unless klass @klass = klass @klass.class_attribute :default_settings, :setting_object_class_name @klass.default_settings = {} @klass.setting_object_class_name = [:class_name] || 'RailsSettings::SettingObject' if block_given? yield(self) else keys.each do |k| key(k) end end raise ArgumentError.new('has_settings: No keys defined') if @klass.default_settings.blank? end |
Instance Method Details
#key(name, options = {}) ⇒ Object
26 27 28 29 30 |
# File 'lib/rails-settings/configuration.rb', line 26 def key(name, ={}) raise ArgumentError.new("has_settings: Symbol expected, but got a #{name.class}") unless name.is_a?(Symbol) raise ArgumentError.new("has_settings: Option :defaults expected, but got #{options.keys.join(', ')}") unless .blank? || (.keys == [:defaults]) @klass.default_settings[name] = ([:defaults] || {}).stringify_keys.freeze end |