class RedmineCrm::Settings

Constants

SECTIONS

Public Class Methods

[](value) click to toggle source
# File lib/redmine_crm/settings.rb, line 39
def [](value)
  initialize_gem_settings unless @settings_initialized
  return Setting.plugin_redmine_crm[value] if Object.const_defined?('Setting')

  nil
end
apply=(values) click to toggle source

Use apply instead attrs assign because it can rewrite other attributes

# File lib/redmine_crm/settings.rb, line 28
def apply=(values)
  initialize_gem_settings unless @settings_initialized

  Setting.plugin_redmine_crm = Setting.plugin_redmine_crm.merge(values)
end
initialize_gem_settings() click to toggle source
# 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
values() click to toggle source
# File lib/redmine_crm/settings.rb, line 34
def values
  initialize_gem_settings unless @settings_initialized
  Object.const_defined?('Setting') ? Setting.plugin_redmine_crm : {}
end

Private Class Methods

default_settings() click to toggle source
# File lib/redmine_crm/settings.rb, line 48
def default_settings
  {}
end