Class: RedmineCrm::Settings

Inherits:
Object
  • Object
show all
Defined in:
lib/redmine_crm/settings.rb,
lib/redmine_crm/settings/money.rb

Defined Under Namespace

Classes: Money

Constant Summary collapse

SECTIONS =
{
  'money' => { id: :money, label: :label_redmine_crm_money, partial: 'money' }
}.freeze

Class Method Summary collapse

Class Method Details

.[](value) ⇒ Object



37
38
39
40
41
42
# File 'lib/redmine_crm/settings.rb', line 37

def [](value)
  initialize_gem_settings unless @settings_initialized
  return Setting.plugin_redmine_crm[value] if Object.const_defined?('Setting')

  nil
end

.apply=(values) ⇒ Object

Use apply instead attrs assign because it can rewrite other attributes



28
29
30
# File 'lib/redmine_crm/settings.rb', line 28

def apply=(values)
  Setting.plugin_redmine_crm = Setting.plugin_redmine_crm.merge(values)
end

.initialize_gem_settingsObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/redmine_crm/settings.rb', line 8

def initialize_gem_settings
  return if !Object.const_defined?('Setting') || Setting.respond_to?(:plugin_redmine_crm)

  if Setting.respond_to?(:define_setting)
    Setting.send(:define_setting, 'plugin_redmine_crm', 'default' => default_settings, 'serialized' => true)
  elsif Setting.respond_to?(:available_settings)
    Setting.available_settings['plugin_redmine_crm'] = { 'default' => default_settings, 'serialized' => true }
    Setting.class.send(:define_method, 'plugin_redmine_crm', -> { Setting['plugin_redmine_crm'] })
    Setting.class.send(:define_method, 'plugin_redmine_crm=', lambda do |val|
      setting = find_or_default('plugin_redmine_crm')
      setting.value = val || ''
      @cached_settings['plugin_redmine_crm'] = nil
      setting.save(validate: false)
      setting.value
    end)
  end
  @settings_initialized
end

.valuesObject



32
33
34
35
# File 'lib/redmine_crm/settings.rb', line 32

def values
  initialize_gem_settings unless @settings_initialized
  Object.const_defined?('Setting') ? Setting.plugin_redmine_crm : {}
end