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)