Skip to content

Commit

Permalink
Logging
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriprat committed Jul 4, 2015
1 parent f255371 commit 1142e0f
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
11 changes: 10 additions & 1 deletion lib/resque-delay.rb
@@ -1,4 +1,13 @@
require 'resque_delay/performable_method'
require 'resque_delay/message_sending'

Object.send(:include, ResqueDelay::MessageSending)
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
5 changes: 4 additions & 1 deletion lib/resque_delay/performable_method.rb
Expand Up @@ -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
Expand Down
16 changes: 13 additions & 3 deletions spec/resque_spec.rb
Expand Up @@ -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
Expand All @@ -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

Expand Down

0 comments on commit 1142e0f

Please sign in to comment.