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