From 11b906dfd73761d56e29918edd0feea168001d39 Mon Sep 17 00:00:00 2001 From: Jens Ulferts Date: Thu, 2 Jul 2015 14:33:53 +0200 Subject: [PATCH] introducing a setting to disable cf class caching The setting is not yet used. --- lib/open_project/reporting/engine.rb | 5 +- .../open_project/configuration_patch.rb | 31 ++++++++++++ spec/lib/open_project/configuration_spec.rb | 47 +++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 lib/open_project/reporting/patches/open_project/configuration_patch.rb create mode 100644 spec/lib/open_project/configuration_spec.rb diff --git a/lib/open_project/reporting/engine.rb b/lib/open_project/reporting/engine.rb index a0b7af7871..4bf5ea9b37 100644 --- a/lib/open_project/reporting/engine.rb +++ b/lib/open_project/reporting/engine.rb @@ -90,6 +90,9 @@ module OpenProject::Reporting require_dependency 'cost_query/group_by' end - patches [:CostlogController, :TimelogController, :CustomFieldsController] + patches [:CostlogController, + :TimelogController, + :CustomFieldsController, + :'OpenProject::Configuration'] end end diff --git a/lib/open_project/reporting/patches/open_project/configuration_patch.rb b/lib/open_project/reporting/patches/open_project/configuration_patch.rb new file mode 100644 index 0000000000..60faa865a4 --- /dev/null +++ b/lib/open_project/reporting/patches/open_project/configuration_patch.rb @@ -0,0 +1,31 @@ +#-- copyright +# OpenProject Reporting Plugin +# +# Copyright (C) 2010 - 2014 the OpenProject Foundation (OPF) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#++ + + +require_dependency 'open_project/configuration' + +module OpenProject::Reporting::Patches + module OpenProject::ConfigurationPatch + def self.included(base) + base.class_eval do + @defaults['cost_reporting_cache_filter_classes'] = true + end + end + end +end diff --git a/spec/lib/open_project/configuration_spec.rb b/spec/lib/open_project/configuration_spec.rb new file mode 100644 index 0000000000..228cc82973 --- /dev/null +++ b/spec/lib/open_project/configuration_spec.rb @@ -0,0 +1,47 @@ +#-- copyright +# OpenProject Reporting Plugin +# +# Copyright (C) 2010 - 2014 the OpenProject Foundation (OPF) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#++ + +require 'spec_helper' + +describe 'OpenProject::Configuration' do + context '.cost_reporting_cache_filter_classes' do + before do + # This prevents the values from the actual configuration file to influence + # the test outcome. + # + # TODO: I propose to port this over to the core to always prevent this for specs. + OpenProject::Configuration.load(file: 'bogus') + end + + after do + # resetting for now to avoid braking specs, who by now rely on having the file read. + OpenProject::Configuration.load + end + + it 'is a true by default via the method' do + expect(OpenProject::Configuration.cost_reporting_cache_filter_classes).to be_truthy + end + + + it 'is true by default via the hash' do + expect(OpenProject::Configuration['cost_reporting_cache_filter_classes']).to be_truthy + end + + end +end