Class: Redmineup::Settings

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

Defined Under Namespace

Classes: Money

Constant Summary collapse

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

Class Method Summary collapse

Class Method Details

.[](value) ⇒ Object



39
40
41
42
43
44
# File 'lib/redmineup/settings.rb', line 39

def [](value)
  initialize_gem_settings unless @settings_initialized
  return Setting.plugin_redmineup[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
31
32
# File 'lib/redmineup/settings.rb', line 28

def apply=(values)
  initialize_gem_settings unless @settings_initialized

  Setting.plugin_redmineup = Setting.plugin_redmineup.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/redmineup/settings.rb', line 8

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

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

.valuesObject



34
35
36
37
# File 'lib/redmineup/settings.rb', line 34

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