Skip to content

Commit

Permalink
Fixed argument passing in Objects::Worker
Browse files Browse the repository at this point in the history
  • Loading branch information
felipecsl committed May 25, 2012
1 parent a2453f3 commit 1fde267
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
7 changes: 5 additions & 2 deletions lib/perform_later/workers/objects/worker.rb
Expand Up @@ -6,8 +6,11 @@ def self.perform(klass_name, method, *args)
arguments = PerformLater::ArgsParser.args_from_resque(args)

if arguments.any?
argument = arguments.size == 1 ? arguments.first : arguments
klass_name.constantize.send(method, argument)
if arguments.size == 1
klass_name.constantize.send(method, arguments.first)
else
klass_name.constantize.send(method, *arguments)
end
else
klass_name.constantize.send(method)
end
Expand Down
15 changes: 13 additions & 2 deletions spec/lib/perform_later/workers/objects/worker_spec.rb
Expand Up @@ -13,8 +13,8 @@ def self.identity_function(data)
data
end

def join(arg1, arg2)
"#{arg1}, #{arg2}"
def self.join(arg1, arg2)
"#{arg1}|#{arg2}"
end
end

Expand Down Expand Up @@ -51,4 +51,15 @@ def join(arg1, arg2)
args = PerformLater::ArgsParser.args_to_resque(data)
subject.perform("DummyClass", :identity_function, args).should == data
end

it 'should pass AR and hash' do
user = User.create
arr = {
something_a: "aaa",
something_b: "bbb"
}
arg1 = PerformLater::ArgsParser.args_to_resque(user)
arg2 = PerformLater::ArgsParser.args_to_resque(arr)
subject.perform("DummyClass", :join, arg1, arg2).split("|")[1].should == "{:something_a=>\"aaa\", :something_b=>\"bbb\"}"
end
end

0 comments on commit 1fde267

Please sign in to comment.