lib/redmine_crm/settings.rb in redmine_crm-0.0.48 vs lib/redmine_crm/settings.rb in redmine_crm-0.0.49
- old
+ new
@@ -9,10 +9,22 @@
# @example
# RedmineCrm::Settings.initialize_gem_settings
def initialize_gem_settings
return if Setting.respond_to?(:plugin_redmine_crm)
- Setting.send(:define_setting, 'plugin_redmine_crm', { 'default' => default_settings, 'serialized' => true })
+ 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
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)