Module: Cohabit::Configuration::Settings
- Included in:
- Cohabit::Configuration, RouteHelperScope, Scope, Strategy
- Defined in:
- lib/cohabit/configuration/settings.rb
Constant Summary collapse
- DEFAULT_SETTINGS =
{ association: :tenant, association_as: :tenant }
- CUSTOM_HANDLERS =
[:globals]
Instance Attribute Summary collapse
-
#settings ⇒ Object
readonly
deez are our global settings for this configuration instance.
Class Method Summary collapse
Instance Method Summary collapse
- #generate_settings_hash!(args) ⇒ Object
- #initialize_with_settings(*args, &block) ⇒ Object
- #merge_settings!(settings) ⇒ Object
- #set(setting, value) ⇒ Object
- #set_globals(value) ⇒ Object
Instance Attribute Details
#settings ⇒ Object (readonly)
deez are our global settings for this configuration instance
18 19 20 |
# File 'lib/cohabit/configuration/settings.rb', line 18 def settings @settings end |
Class Method Details
.included(base) ⇒ Object
12 13 14 15 |
# File 'lib/cohabit/configuration/settings.rb', line 12 def self.included(base) base.send :alias_method, :initialize_without_settings, :initialize base.send :alias_method, :initialize, :initialize_with_settings end |
Instance Method Details
#generate_settings_hash!(args) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/cohabit/configuration/settings.rb', line 30 def generate_settings_hash!(args) if args.last.is_a?(Hash) args[args.length-1] = @settings.merge(args.last) else args << @settings.dup end end |
#initialize_with_settings(*args, &block) ⇒ Object
20 21 22 23 |
# File 'lib/cohabit/configuration/settings.rb', line 20 def initialize_with_settings(*args, &block) @settings = DEFAULT_SETTINGS.dup initialize_without_settings(*args, &block) end |
#merge_settings!(settings) ⇒ Object
25 26 27 28 |
# File 'lib/cohabit/configuration/settings.rb', line 25 def merge_settings!(settings) settings.delete_if{ |s| !DEFAULT_SETTINGS.include?(s) } @settings.merge!(settings) end |
#set(setting, value) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/cohabit/configuration/settings.rb', line 38 def set(setting, value) setting = setting.to_sym if CUSTOM_HANDLERS.include?(setting) send("set_#{setting}", value) and return end @settings[setting] = value end |
#set_globals(value) ⇒ Object
46 47 48 49 50 |
# File 'lib/cohabit/configuration/settings.rb', line 46 def set_globals(value) [value].flatten.each do |v| Cohabit.add_global(v) unless Cohabit.respond_to?(v) end end |