lib/redmine_crm/settings.rb in redmine_crm-0.0.49 vs lib/redmine_crm/settings.rb in redmine_crm-0.0.50

- old
+ new

@@ -3,15 +3,12 @@ SECTIONS = { 'money' => { id: :money, label: :label_redmine_crm_money, partial: 'money' } }.freeze class << self - # Initialize settings before using with this method - # @example - # RedmineCrm::Settings.initialize_gem_settings def initialize_gem_settings - return if Setting.respond_to?(:plugin_redmine_crm) + 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 } @@ -22,21 +19,24 @@ @cached_settings['plugin_redmine_crm'] = nil setting.save(validate: false) setting.value end) end + @settings_initialized end # Use apply instead attrs assign because it can rewrite other attributes def apply=(values) Setting.plugin_redmine_crm = Setting.plugin_redmine_crm.merge(values) end def values + initialize_gem_settings unless @settings_initialized Object.const_defined?('Setting') ? Setting.plugin_redmine_crm : {} end def [](value) + initialize_gem_settings unless @settings_initialized return Setting.plugin_redmine_crm[value] if Object.const_defined?('Setting') nil end