From 387a7d993573b1492b1ed39f6803acc77af9233b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 22 May 2014 19:35:45 +0200 Subject: Standardize on "arguments" for everything -- no more "paramters" --- lib/active_job/arguments.rb | 24 ++++++++++++++++++++++++ lib/active_job/enqueuing.rb | 6 +++--- lib/active_job/parameters.rb | 24 ------------------------ lib/active_job/performing.rb | 4 ++-- test/cases/callbacks_test.rb | 2 +- test/cases/parameters_test.rb | 36 ++++++++++++++++++------------------ test/cases/queuing_test.rb | 2 +- 7 files changed, 49 insertions(+), 49 deletions(-) create mode 100644 lib/active_job/arguments.rb delete mode 100644 lib/active_job/parameters.rb diff --git a/lib/active_job/arguments.rb b/lib/active_job/arguments.rb new file mode 100644 index 0000000000..d1cc6d3177 --- /dev/null +++ b/lib/active_job/arguments.rb @@ -0,0 +1,24 @@ +require 'active_model/global_locator' +require 'active_support/core_ext/object/try' + +module ActiveJob + class Arguments + TYPE_WHITELIST = [ NilClass, Fixnum, Float, String, TrueClass, FalseClass, Hash, Array, Bignum ] + + def self.serialize(arguments) + arguments.collect do |argument| + if argument.respond_to?(:global_id) + argument.global_id + elsif TYPE_WHITELIST.include?(argument.class) + argument + else + raise "Unsupported argument type: #{argument.class.name}" + end + end + end + + def self.deserialize(arguments) + arguments.collect { |argument| ActiveModel::GlobalLocator.locate(argument) || argument } + end + end +end diff --git a/lib/active_job/enqueuing.rb b/lib/active_job/enqueuing.rb index 8b1f29ce77..4ff7ec7e7f 100644 --- a/lib/active_job/enqueuing.rb +++ b/lib/active_job/enqueuing.rb @@ -1,4 +1,4 @@ -require 'active_job/parameters' +require 'active_job/arguments' module ActiveJob module Enqueuing @@ -15,7 +15,7 @@ module ActiveJob def enqueue(*args) new(args).tap do |job| job.run_callbacks :enqueue do - queue_adapter.enqueue self, *Parameters.serialize(args) + queue_adapter.enqueue self, *Arguments.serialize(args) end end end @@ -41,7 +41,7 @@ module ActiveJob job.enqueued_at = timestamp job.run_callbacks :enqueue do - queue_adapter.enqueue_at self, timestamp.to_f, *Parameters.serialize(args) + queue_adapter.enqueue_at self, timestamp.to_f, *Arguments.serialize(args) end end end diff --git a/lib/active_job/parameters.rb b/lib/active_job/parameters.rb deleted file mode 100644 index 955fd887d7..0000000000 --- a/lib/active_job/parameters.rb +++ /dev/null @@ -1,24 +0,0 @@ -require 'active_model/global_locator' -require 'active_support/core_ext/object/try' - -module ActiveJob - class Parameters - TYPE_WHITELIST = [ NilClass, Fixnum, Float, String, TrueClass, FalseClass, Hash, Array, Bignum ] - - def self.serialize(params) - params.collect do |param| - if param.respond_to?(:global_id) - param.global_id - elsif TYPE_WHITELIST.include?(param.class) - param - else - raise "Unsupported parameter type: #{param.class.name}" - end - end - end - - def self.deserialize(params) - params.collect { |param| ActiveModel::GlobalLocator.locate(param) || param } - end - end -end diff --git a/lib/active_job/performing.rb b/lib/active_job/performing.rb index 126193995c..ef17a39f85 100644 --- a/lib/active_job/performing.rb +++ b/lib/active_job/performing.rb @@ -1,9 +1,9 @@ -require 'active_job/parameters' +require 'active_job/arguments' module ActiveJob module Performing def perform_with_hooks(*serialized_args) - self.arguments = Parameters.deserialize(serialized_args) + self.arguments = Arguments.deserialize(serialized_args) run_callbacks :perform do perform *arguments diff --git a/test/cases/callbacks_test.rb b/test/cases/callbacks_test.rb index 391c7e87c4..06e2ea4a2e 100644 --- a/test/cases/callbacks_test.rb +++ b/test/cases/callbacks_test.rb @@ -1,5 +1,5 @@ require 'helper' -require 'active_job/parameters' +require 'active_job/arguments' require 'jobs/callback_job' require 'active_support/core_ext/object/inclusion' diff --git a/test/cases/parameters_test.rb b/test/cases/parameters_test.rb index fb0b920c6e..625c59c404 100644 --- a/test/cases/parameters_test.rb +++ b/test/cases/parameters_test.rb @@ -1,48 +1,48 @@ require 'helper' -require 'active_job/parameters' +require 'active_job/arguments' require 'models/person' class ParameterSerializationTest < ActiveSupport::TestCase test 'should make no change to regular values' do - assert_equal [ 1, "something" ], ActiveJob::Parameters.serialize([ 1, "something" ]) + assert_equal [ 1, "something" ], ActiveJob::Arguments.serialize([ 1, "something" ]) end test 'should not allow complex objects' do - assert_equal [ nil ], ActiveJob::Parameters.serialize([ nil ]) - assert_equal [ 1 ], ActiveJob::Parameters.serialize([ 1 ]) - assert_equal [ 1.0 ], ActiveJob::Parameters.serialize([ 1.0 ]) - assert_equal [ 'a' ], ActiveJob::Parameters.serialize([ 'a' ]) - assert_equal [ true ], ActiveJob::Parameters.serialize([ true ]) - assert_equal [ false ], ActiveJob::Parameters.serialize([ false ]) - assert_equal [ { a: 1 } ], ActiveJob::Parameters.serialize([ { a: 1 } ]) - assert_equal [ [ 1 ] ], ActiveJob::Parameters.serialize([ [ 1 ] ]) - assert_equal [ 1_000_000_000_000_000_000_000 ], ActiveJob::Parameters.serialize([ 1_000_000_000_000_000_000_000 ]) + assert_equal [ nil ], ActiveJob::Arguments.serialize([ nil ]) + assert_equal [ 1 ], ActiveJob::Arguments.serialize([ 1 ]) + assert_equal [ 1.0 ], ActiveJob::Arguments.serialize([ 1.0 ]) + assert_equal [ 'a' ], ActiveJob::Arguments.serialize([ 'a' ]) + assert_equal [ true ], ActiveJob::Arguments.serialize([ true ]) + assert_equal [ false ], ActiveJob::Arguments.serialize([ false ]) + assert_equal [ { a: 1 } ], ActiveJob::Arguments.serialize([ { a: 1 } ]) + assert_equal [ [ 1 ] ], ActiveJob::Arguments.serialize([ [ 1 ] ]) + assert_equal [ 1_000_000_000_000_000_000_000 ], ActiveJob::Arguments.serialize([ 1_000_000_000_000_000_000_000 ]) err = assert_raises RuntimeError do - ActiveJob::Parameters.serialize([ 1, self ]) + ActiveJob::Arguments.serialize([ 1, self ]) end - assert_equal "Unsupported parameter type: #{self.class.name}", err.message + assert_equal "Unsupported argument type: #{self.class.name}", err.message end test 'should serialize records with global id' do - assert_equal [ Person.find(5).gid ], ActiveJob::Parameters.serialize([ Person.find(5) ]) + assert_equal [ Person.find(5).gid ], ActiveJob::Arguments.serialize([ Person.find(5) ]) end test 'should serialize values and records together' do - assert_equal [ 3, Person.find(5).gid ], ActiveJob::Parameters.serialize([ 3, Person.find(5) ]) + assert_equal [ 3, Person.find(5).gid ], ActiveJob::Arguments.serialize([ 3, Person.find(5) ]) end end class ParameterDeserializationTest < ActiveSupport::TestCase test 'should make no change to regular values' do - assert_equal [ 1, "something" ], ActiveJob::Parameters.deserialize([ 1, "something" ]) + assert_equal [ 1, "something" ], ActiveJob::Arguments.deserialize([ 1, "something" ]) end test 'should deserialize records with global id' do - assert_equal [ Person.find(5) ], ActiveJob::Parameters.deserialize([ Person.find(5).gid ]) + assert_equal [ Person.find(5) ], ActiveJob::Arguments.deserialize([ Person.find(5).gid ]) end test 'should serialize values and records together' do - assert_equal [ 3, Person.find(5) ], ActiveJob::Parameters.deserialize([ 3, Person.find(5).gid ]) + assert_equal [ 3, Person.find(5) ], ActiveJob::Arguments.deserialize([ 3, Person.find(5).gid ]) end end diff --git a/test/cases/queuing_test.rb b/test/cases/queuing_test.rb index 029f60f246..3dd9ecd8d2 100644 --- a/test/cases/queuing_test.rb +++ b/test/cases/queuing_test.rb @@ -13,7 +13,7 @@ class QueuingTest < ActiveSupport::TestCase assert_equal "David says hello", $BUFFER.pop end - test 'run queued job with parameters' do + test 'run queued job with arguments' do HelloJob.enqueue "Jamie" assert_equal "Jamie says hello", $BUFFER.pop end -- cgit v1.2.3