From 8375263556568e120f2f80ec86b8e8d61fbde917 Mon Sep 17 00:00:00 2001 From: Semyon Pupkov Date: Tue, 1 Mar 2016 14:22:15 +0500 Subject: [PATCH 1/3] feature: add base field and translators https://jira.railsc.ru/browse/PC4-16297 --- lib/treasury/fields/base.rb | 6 ++++++ lib/treasury/processors/optimized_translator.rb | 7 +++++++ lib/treasury/processors/translator.rb | 7 +++++++ 3 files changed, 20 insertions(+) create mode 100644 lib/treasury/fields/base.rb create mode 100644 lib/treasury/processors/optimized_translator.rb create mode 100644 lib/treasury/processors/translator.rb diff --git a/lib/treasury/fields/base.rb b/lib/treasury/fields/base.rb new file mode 100644 index 0000000..46db0a6 --- /dev/null +++ b/lib/treasury/fields/base.rb @@ -0,0 +1,6 @@ +module Treasury + module Fields + class Base < ::CoreDenormalization::Fields::Base + end + end +end diff --git a/lib/treasury/processors/optimized_translator.rb b/lib/treasury/processors/optimized_translator.rb new file mode 100644 index 0000000..68e17a4 --- /dev/null +++ b/lib/treasury/processors/optimized_translator.rb @@ -0,0 +1,7 @@ +module Treasury + module Processors + module OptimizedTranslator + include ::CoreDenormalization::Processors::OptimizedTranslator + end + end +end diff --git a/lib/treasury/processors/translator.rb b/lib/treasury/processors/translator.rb new file mode 100644 index 0000000..daad485 --- /dev/null +++ b/lib/treasury/processors/translator.rb @@ -0,0 +1,7 @@ +module Treasury + module Processors + module Translator + include ::CoreDenormalization::Processors::Translator + end + end +end From 8475cacb2ef58bf9e8185a70d007860f27173a2f Mon Sep 17 00:00:00 2001 From: Salahutdinov Dmitry Date: Wed, 2 Mar 2016 10:02:50 +0500 Subject: [PATCH 2/3] Release 0.0.5 --- CHANGELOG.md | 4 ++++ lib/treasury/version.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9191d3f..8531b46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ #### [Current] + * 2016-03-01 [8375263](../../commit/8375263) - __(Semyon Pupkov)__ feature: add base field and translators + +#### v0.0.4 + * 2016-02-17 [d16dde0](../../commit/d16dde0) - __(Salahutdinov Dmitry)__ Release 0.0.4 * 2016-02-16 [791f5d1](../../commit/791f5d1) - __(Salahutdinov Dmitry)__ feature: базовый счетчик денормализации #### v0.0.3 diff --git a/lib/treasury/version.rb b/lib/treasury/version.rb index def262a..1e03e51 100644 --- a/lib/treasury/version.rb +++ b/lib/treasury/version.rb @@ -1,3 +1,3 @@ module Treasury - VERSION = '0.0.4' + VERSION = '0.0.5' end From 863782bb0bfd8d9a5915b45279e3e51211fe7cce Mon Sep 17 00:00:00 2001 From: Sergey Kucher Date: Tue, 1 Mar 2016 20:48:18 +0500 Subject: [PATCH 3/3] fix: customer new orders counter - fix treasury/processors/counters module in case when nothing changing https://jira.railsc.ru/browse/PC4-16549 --- .gitignore | 2 +- lib/treasury/processors/base.rb | 7 +++++++ lib/treasury/processors/counters.rb | 6 +++--- .../lib/core_denormalization/processors/base.rb | 6 ++++++ spec/internal/log/test.log | 0 spec/lib/treasury/processors/counters_spec.rb | 10 ++++++++-- spec/spec_helper.rb | 2 ++ 7 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 spec/internal/lib/core_denormalization/processors/base.rb create mode 100644 spec/internal/log/test.log diff --git a/.gitignore b/.gitignore index f826aed..a8d69ea 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ mkmf.log /.rvmrc /.idea/ gemfiles/ -internal/ \ No newline at end of file +internal/log \ No newline at end of file diff --git a/lib/treasury/processors/base.rb b/lib/treasury/processors/base.rb index 5f78b73..2239e38 100644 --- a/lib/treasury/processors/base.rb +++ b/lib/treasury/processors/base.rb @@ -3,6 +3,13 @@ module Treasury module Processors class Base < ::CoreDenormalization::Processors::Base + def form_value(value) + value + end + + def result_row(value) + {@object => form_value(value)} + end end end end diff --git a/lib/treasury/processors/counters.rb b/lib/treasury/processors/counters.rb index 884faf9..3634e07 100644 --- a/lib/treasury/processors/counters.rb +++ b/lib/treasury/processors/counters.rb @@ -68,7 +68,7 @@ def process_insert fields = counters_list.each_with_object({}) do |counter, hash| hash[counter] = incremented_current_value(counter) if send "#{counter}_satisfied?" end - result_row fields + result_row(fields) if fields.present? end def process_update @@ -79,14 +79,14 @@ def process_update hash[counter] = decremented_current_value(counter) if send "#{counter}_was_counted?" end end - result_row fields + result_row(fields) if fields.present? end def process_delete fields = counters_list.each_with_object({}) do |counter, hash| hash[counter] = decremented_current_value(counter) if send "#{counter}_was_counted?" end - result_row fields + result_row(fields) if fields.present? end end end diff --git a/spec/internal/lib/core_denormalization/processors/base.rb b/spec/internal/lib/core_denormalization/processors/base.rb new file mode 100644 index 0000000..6534350 --- /dev/null +++ b/spec/internal/lib/core_denormalization/processors/base.rb @@ -0,0 +1,6 @@ +module CoreDenormalization + module Processors + class Base + end + end +end \ No newline at end of file diff --git a/spec/internal/log/test.log b/spec/internal/log/test.log new file mode 100644 index 0000000..e69de29 diff --git a/spec/lib/treasury/processors/counters_spec.rb b/spec/lib/treasury/processors/counters_spec.rb index ef08252..95daf7e 100644 --- a/spec/lib/treasury/processors/counters_spec.rb +++ b/spec/lib/treasury/processors/counters_spec.rb @@ -4,7 +4,7 @@ let(:processor) { processor_class.new } let(:processor_class) do - Class.new do + Class.new(::Treasury::Processors::Base) do include ::Treasury::Processors::Counters counters :count @@ -34,13 +34,13 @@ def count?(data) it do expect(processor).not_to receive(:incremented_current_value) expect(processor).not_to receive(:decremented_current_value) + expect(result).to be_nil end end before do allow(processor).to receive(:incremented_current_value) allow(processor).to receive(:decremented_current_value) - allow(processor).to receive(:result_row) processor.instance_variable_set :@event, event end @@ -107,6 +107,8 @@ def count?(data) end describe "#process_insert" do + let(:result) { processor.process_insert } + context "when event is satisfied" do let(:event) { double satisfied } it { expect(processor).to receive(:incremented_current_value).with(:count) } @@ -121,6 +123,8 @@ def count?(data) end describe "#process_update" do + let(:result) { processor.process_update } + context "when event is satisfied and wasn't counted" do let(:event) { double satisfied.merge(not_counted) } it { expect(processor).to receive(:incremented_current_value).with(:count) } @@ -145,6 +149,8 @@ def count?(data) end describe "#process_delete" do + let(:result) { processor.process_delete } + context "when event was counted" do let(:event) { double counted } it { expect(processor).to receive(:decremented_current_value).with(:count) } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 41b1ef9..082204c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -8,3 +8,5 @@ require 'combustion' Combustion.initialize! + +require_relative 'internal/lib/core_denormalization/processors/base' \ No newline at end of file