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

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#settingsObject (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