From 9d6316005f69989867b88048f1ab59e5fb902789 Mon Sep 17 00:00:00 2001 From: Avi Tzurel Date: Thu, 24 May 2012 00:13:49 +0300 Subject: [PATCH] Maintenence --- lib/object_perform_later.rb | 13 +++++++------ lib/perform_later/workers/objects/worker.rb | 2 +- spec/lib/perform_later/args_parser_spec.rb | 6 ++++-- spec/lib/perform_later/payload_helper_spec.rb | 1 - .../workers/active_record/worker_spec.rb | 5 +++++ .../perform_later/workers/objects/worker_spec.rb | 15 +++++++++++++++ 6 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 spec/lib/perform_later/workers/active_record/worker_spec.rb create mode 100644 spec/lib/perform_later/workers/objects/worker_spec.rb diff --git a/lib/object_perform_later.rb b/lib/object_perform_later.rb index d3c5a90..3a277ea 100644 --- a/lib/object_perform_later.rb +++ b/lib/object_perform_later.rb @@ -3,28 +3,29 @@ def perform_later(queue, method, *args) return self.send(method, *args) unless PerformLater.config.enabled? worker = PerformLater::Workers::Objects::Worker - perform_later_enqueue(worker, queue, method, args) + perform_later_enqueue(worker, queue, method, *args) end def perform_later!(queue, method, *args) return self.send(method, *args) unless PerformLater.config.enabled? - return "EXISTS!" if loner_exists(method, args) + return "EXISTS!" if loner_exists(method, *args) worker = PerformLater::Workers::Objects::LoneWorker - perform_later_enqueue(worker, queue, method, args) + perform_later_enqueue(worker, queue, method, *args) end private - def loner_exists(method, args) - digest = PerformLater::PayloadHelper.get_digest(self.name, method, args) + def loner_exists(method, *args) + digest = PerformLater::PayloadHelper.get_digest(self.name, method, *args) + return true unless Resque.redis.get(digest).blank? Resque.redis.set(digest, 'EXISTS') return false end def perform_later_enqueue(worker, queue, method, *args) - args = PerformLater::ArgsParser.args_to_resque(args) + args = PerformLater::ArgsParser.args_to_resque(*args) Resque::Job.create(queue, worker, self.name, method, *args) end end diff --git a/lib/perform_later/workers/objects/worker.rb b/lib/perform_later/workers/objects/worker.rb index 7566999..0c6178a 100644 --- a/lib/perform_later/workers/objects/worker.rb +++ b/lib/perform_later/workers/objects/worker.rb @@ -3,7 +3,7 @@ module Workers module Objects class Worker def self.perform(klass_name, method, *args) - args = PerformLater::ArgsParser.args_from_resque(args) + args = PerformLater::ArgsParser.args_from_resque(*args) klass_name.constantize.send(method, *args) end end diff --git a/spec/lib/perform_later/args_parser_spec.rb b/spec/lib/perform_later/args_parser_spec.rb index d92cb03..cb1ca2b 100644 --- a/spec/lib/perform_later/args_parser_spec.rb +++ b/spec/lib/perform_later/args_parser_spec.rb @@ -26,8 +26,10 @@ { something: "eee" } ] to_resque = subject.args_to_resque(arr).to_json - from_resque = subject.args_from_resque(JSON.parse(to_resque)) - + puts to_resque + a = JSON.parse(to_resque) + from_resque = subject.args_from_resque(a) + from_resque.should == arr end diff --git a/spec/lib/perform_later/payload_helper_spec.rb b/spec/lib/perform_later/payload_helper_spec.rb index 6fd061e..4569a57 100644 --- a/spec/lib/perform_later/payload_helper_spec.rb +++ b/spec/lib/perform_later/payload_helper_spec.rb @@ -14,7 +14,6 @@ }.to_s) args = PerformLater::ArgsParser.args_to_resque(user) - puts args subject.get_digest("DummyClass", :some_method, args).should == digest end end diff --git a/spec/lib/perform_later/workers/active_record/worker_spec.rb b/spec/lib/perform_later/workers/active_record/worker_spec.rb new file mode 100644 index 0000000..8228818 --- /dev/null +++ b/spec/lib/perform_later/workers/active_record/worker_spec.rb @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe PerformLater::Workers::ActiveRecord::Worker do + +end \ No newline at end of file diff --git a/spec/lib/perform_later/workers/objects/worker_spec.rb b/spec/lib/perform_later/workers/objects/worker_spec.rb new file mode 100644 index 0000000..caec291 --- /dev/null +++ b/spec/lib/perform_later/workers/objects/worker_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +class DummyClass + def self.do_somthing_with_array_of_hashes(arr) + arr[0][:foo] + end +end + +describe PerformLater::Workers::Objects::Worker do + subject { PerformLater::Workers::Objects::Worker } + + it "should pass an array of hashes into the method" do + + end +end \ No newline at end of file