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 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/rails-settings/configuration.rb', line 3 def initialize(*args, &block) = args. klass = args.shift keys = args raise ArgumentError unless klass @klass = klass if [:persistent] unless @klass.methods.include?(:default_settings) @klass.class_attribute :default_settings end else @klass.class_attribute :default_settings end @klass.class_attribute :setting_object_class_name @klass.default_settings ||= {} @klass.setting_object_class_name = [:class_name] || 'RailsSettings::SettingObject' if block_given? yield(self) else keys.each { |k| key(k) } end if @klass.default_settings.blank? raise ArgumentError.new('has_settings: No keys defined') end end |
Instance Method Details
#key(name, options = {}) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/rails-settings/configuration.rb', line 36 def key(name, = {}) unless name.is_a?(Symbol) raise ArgumentError.new( "has_settings: Symbol expected, but got a #{name.class}", ) end unless .blank? || (.keys == [:defaults]) raise ArgumentError.new( "has_settings: Option :defaults expected, but got #{.keys.join(', ')}", ) end @klass.default_settings[name] = ( [:defaults] || {} ).stringify_keys.freeze end |