Module: Mongoid::Config::Options
- Included in:
- Mongoid::Config
- Defined in:
- lib/mongoid/config/options.rb
Overview
Encapsulates logic for setting options.
Instance Method Summary collapse
-
#defaults ⇒ Hash
Get the defaults or initialize a new empty hash.
-
#log_level ⇒ Integer
Get the log level.
-
#option(name, options = {}) ⇒ Object
Define a configuration option with a default.
-
#reset ⇒ Hash
Reset the configuration options to the defaults.
-
#settings ⇒ Hash
Get the settings or initialize a new empty hash.
Instance Method Details
#defaults ⇒ Hash
Get the defaults or initialize a new empty hash.
16 17 18 |
# File 'lib/mongoid/config/options.rb', line 16 def defaults @defaults ||= {} end |
#log_level ⇒ Integer
Get the log level.
92 93 94 95 96 97 98 99 100 |
# File 'lib/mongoid/config/options.rb', line 92 def log_level if level = settings[:log_level] unless level.is_a?(Integer) # JRuby String#constantize does not work here. level = Logger.const_get(level.upcase.to_s) end level end end |
#option(name, options = {}) ⇒ Object
Define a configuration option with a default.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/mongoid/config/options.rb', line 31 def option(name, = {}) defaults[name] = settings[name] = [:default] class_eval do # log_level accessor is defined specially below unless name.to_sym == :log_level define_method(name) do settings[name] end end define_method("#{name}=") do |value| old_value = settings[name] settings[name] = value begin [:on_change]&.call(value) rescue # If the on_change callback raises an error, we need to roll # the change back. settings[name] = old_value raise end end define_method("#{name}?") do !!send(name) end end end |
#reset ⇒ Hash
Reset the configuration options to the defaults.
68 69 70 71 72 73 74 |
# File 'lib/mongoid/config/options.rb', line 68 def reset # do this via the setter for each option, so that any defined on_change # handlers can be invoked. defaults.each do |setting, default| send(:"#{setting}=", default) end end |
#settings ⇒ Hash
Get the settings or initialize a new empty hash.
82 83 84 |
# File 'lib/mongoid/config/options.rb', line 82 def settings @settings ||= {} end |