diff --git a/lib/navvy/job/active_record.rb b/lib/navvy/job/active_record.rb index 815a9d1..c5b5d60 100644 --- a/lib/navvy/job/active_record.rb +++ b/lib/navvy/job/active_record.rb @@ -49,6 +49,7 @@ def self.enqueue(object, method_name, *args) options = {} if args.last.is_a?(Hash) options = args.last.delete(:job_options) || {} + args.pop if args.last.empty? end create( diff --git a/lib/navvy/job/data_mapper.rb b/lib/navvy/job/data_mapper.rb index 875fff8..a83ed07 100644 --- a/lib/navvy/job/data_mapper.rb +++ b/lib/navvy/job/data_mapper.rb @@ -66,6 +66,7 @@ def self.enqueue(object, method_name, *args) options = {} if args.last.is_a?(Hash) options = args.last.delete(:job_options) || {} + args.pop if args.last.empty? end new_job = self.new diff --git a/lib/navvy/job/mongo_mapper.rb b/lib/navvy/job/mongo_mapper.rb index 02ac8b3..d3e100e 100644 --- a/lib/navvy/job/mongo_mapper.rb +++ b/lib/navvy/job/mongo_mapper.rb @@ -65,6 +65,7 @@ def self.enqueue(object, method_name, *args) options = {} if args.last.is_a?(Hash) options = args.last.delete(:job_options) || {} + args.pop if args.last.empty? end create( diff --git a/lib/navvy/job/sequel.rb b/lib/navvy/job/sequel.rb index a7388e1..d1c2a3c 100644 --- a/lib/navvy/job/sequel.rb +++ b/lib/navvy/job/sequel.rb @@ -52,6 +52,7 @@ def self.enqueue(object, method_name, *args) options = {} if args.last.is_a?(Hash) options = args.last.delete(:job_options) || {} + args.pop if args.last.empty? end create( diff --git a/spec/job_spec.rb b/spec/job_spec.rb index bbbaa6d..1037f7c 100644 --- a/spec/job_spec.rb +++ b/spec/job_spec.rb @@ -71,7 +71,20 @@ Navvy::Job.enqueue(Cow, :speak) first_job.priority.should == 0 end - + + it 'should set the options without messing up the arguments' do + job = Navvy::Job.enqueue( + Cow, + :speak, + true, + false, + :job_options => { + :run_at => Time.now + } + ) + job.args.should == [true, false] + end + it 'should set the priority' do Navvy::Job.enqueue( Cow,