From 1142e0fabc63ccf2e34dbc4c9ee3ff22341daf18 Mon Sep 17 00:00:00 2001 From: Gabriel Prat Masramon Date: Sat, 4 Jul 2015 20:16:01 +0200 Subject: [PATCH] Logging --- lib/resque-delay.rb | 11 ++++++++++- lib/resque_delay/performable_method.rb | 5 ++++- spec/resque_spec.rb | 16 +++++++++++++--- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/lib/resque-delay.rb b/lib/resque-delay.rb index cb0313f..d0286e2 100644 --- a/lib/resque-delay.rb +++ b/lib/resque-delay.rb @@ -1,4 +1,13 @@ require 'resque_delay/performable_method' require 'resque_delay/message_sending' -Object.send(:include, ResqueDelay::MessageSending) \ No newline at end of file +Object.send(:include, ResqueDelay::MessageSending) + +module ResqueDelay + class << self + attr_accessor :logger + end + def self.logger + @logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT) + end +end \ No newline at end of file diff --git a/lib/resque_delay/performable_method.rb b/lib/resque_delay/performable_method.rb index 22e063b..82d6c0c 100644 --- a/lib/resque_delay/performable_method.rb +++ b/lib/resque_delay/performable_method.rb @@ -29,7 +29,10 @@ def display_name end def perform - load(object).send(method, *args.map { |a| load(a) }) + ResqueDelay.logger.debug "Loading #{object}" + obj = load(object) + ResqueDelay.logger.debug "Loaded #{obj.to_yaml}" + obj.send(method, *args.map { |a| load(a) }) rescue => e if defined?(ActiveRecord) && e.kind_of?(ActiveRecord::RecordNotFound) true diff --git a/spec/resque_spec.rb b/spec/resque_spec.rb index fd5de69..4996e44 100644 --- a/spec/resque_spec.rb +++ b/spec/resque_spec.rb @@ -6,7 +6,12 @@ context 'delay' do class FairyTail attr_accessor :happy_ending - def self.princesses; end + def self.princesses + true + end + def tell + @happy_ending = true + end end before do @@ -20,19 +25,24 @@ def self.princesses; end expect(job.class).to eq(ResqueDelay::PerformableMethod) expect(job.method).to eq(:count) expect(job.args).to eq(['l']) + expect(job.perform).to eq(2) end.to change { Resque.info[:pending] }.by(1) end it 'sets default queue name' do - job = FairyTail.delay(to: 'abbazabba').to_s + fairy_tail = FairyTail.new + job = fairy_tail.delay(to: 'abbazabba').tell expect(job.queue).to eq('abbazabba') + expect { job.perform }.to change(fairy_tail, :happy_ending).from(nil).to(true) end it 'sets job in the future' do expect do run_in = 1 * 3600 * 24 - job = FairyTail.delay(in: run_in).to_s + job = FairyTail.delay(in: run_in).princesses expect(job.run_in).to eq(run_in) + expect_any_instance_of(String).to receive(:constantize).and_return(FairyTail) + expect(job.perform).to eq(true) end.to change { Resque.delayed_queue_schedule_size }.by(1) end