aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafael.franca@plataformatec.com.br>2014-05-19 08:51:51 -0300
committerRafael Mendonça França <rafael.franca@plataformatec.com.br>2014-05-19 08:52:22 -0300
commitc086dfbb99cbd49dadd51cc6b301125806684d42 (patch)
tree6d71f5c2c38ddb034be3a403decce244c31b36e4
parente2405662f6fdb7ba3534c84b19cde01e598551de (diff)
downloadrails-c086dfbb99cbd49dadd51cc6b301125806684d42.tar.gz
rails-c086dfbb99cbd49dadd51cc6b301125806684d42.tar.bz2
rails-c086dfbb99cbd49dadd51cc6b301125806684d42.zip
Make sure Bignum can be serialized
-rw-r--r--lib/active_job/parameters.rb2
-rw-r--r--test/cases/parameters_test.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/active_job/parameters.rb b/lib/active_job/parameters.rb
index 75de5bcae7..5f814f846d 100644
--- a/lib/active_job/parameters.rb
+++ b/lib/active_job/parameters.rb
@@ -3,7 +3,7 @@ require 'active_support/core_ext/object/try'
module ActiveJob
class Parameters
- TYPE_WHITELIST = [NilClass, Fixnum, Float, String, TrueClass, FalseClass, Hash, Array]
+ TYPE_WHITELIST = [NilClass, Fixnum, Float, String, TrueClass, FalseClass, Hash, Array, Bignum]
def self.serialize(params)
params.collect do |param|
diff --git a/test/cases/parameters_test.rb b/test/cases/parameters_test.rb
index 3fbdf8adee..fb0b920c6e 100644
--- a/test/cases/parameters_test.rb
+++ b/test/cases/parameters_test.rb
@@ -8,6 +8,16 @@ class ParameterSerializationTest < ActiveSupport::TestCase
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 ])
+
err = assert_raises RuntimeError do
ActiveJob::Parameters.serialize([ 1, self ])
end