From e777b58e64f1b9a35e0523d6f0429e6d448f3a73 Mon Sep 17 00:00:00 2001 From: Nick Clifford Date: Wed, 19 Jul 2017 15:10:56 -0400 Subject: [PATCH] add ability to call proc to set processing queue --- lib/dalliance.rb | 10 +++++++++- spec/dalliance/dalliance_spec.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/lib/dalliance.rb b/lib/dalliance.rb index b208343..ae68d99 100644 --- a/lib/dalliance.rb +++ b/lib/dalliance.rb @@ -201,10 +201,18 @@ def pending_or_processing? pending? || processing? end + def processing_queue + if self.class.dalliance_options[:queue].respond_to?(:call) + self.class.instance_exec self, &dalliance_options[:queue] + else + self.class.dalliance_options[:queue] + end + end + #Force backgound_processing w/ true def dalliance_background_process(backgound_processing = nil) if backgound_processing || (backgound_processing.nil? && self.class.dalliance_options[:background_processing]) - self.class.dalliance_options[:worker_class].enqueue(self, self.class.dalliance_options[:queue]) + self.class.dalliance_options[:worker_class].enqueue(self, processing_queue) else dalliance_process(false) end diff --git a/spec/dalliance/dalliance_spec.rb b/spec/dalliance/dalliance_spec.rb index 0a20613..cb26241 100644 --- a/spec/dalliance/dalliance_spec.rb +++ b/spec/dalliance/dalliance_spec.rb @@ -24,4 +24,30 @@ expect(DallianceModel.human_attribute_name(:dalliance_status)).to eq ('Status') end end + + context "processing_queue" do + before do + DallianceModel.dalliance_options[:queue] = queue + end + + context "string" do + let(:queue) { 'dalliance_2'} + + specify{ expect(subject.processing_queue).to eq(queue) } + end + + context "proc" do + context "w/o args" do + let(:queue) { Proc.new{ 'dalliance_2' } } + + specify{ expect(subject.processing_queue).to eq(queue.call) } + end + + context "w/ args" do + let(:queue) { Proc.new{ |a,b,c| 'dalliance_2' } } + + specify{ expect(subject.processing_queue).to eq(queue.call) } + end + end + end end