aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/test/jobs
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2015-01-30 13:40:49 -0700
committerSean Griffin <sean@thoughtbot.com>2015-01-30 13:43:39 -0700
commit31085a5cd47894b6fa397ca22fe8aa552d339ce8 (patch)
tree4602b9f66e5a878b0c661b348d7b4cb57f166614 /activejob/test/jobs
parentb93b39eff6829ee05ffec1cc8c505f69cbb53fdc (diff)
downloadrails-31085a5cd47894b6fa397ca22fe8aa552d339ce8.tar.gz
rails-31085a5cd47894b6fa397ca22fe8aa552d339ce8.tar.bz2
rails-31085a5cd47894b6fa397ca22fe8aa552d339ce8.zip
Allow keyword arguments to work with ActiveJob
Unfortunately, the HashWithIndifferent access approach is insufficient for our needs. It's perfectly reasonable to want to use keyword arguments with Active Job, which we will see as a symbol keyed hash. For Ruby to convert this back to keyword arguments, it must deserialize to a symbol keyed hash. There are two primary changes to the serialization behavior. We first treat a HWIA separately, and mark it as such so we can convert it back into a HWIA during deserialization. For normal hashes, we keep a list of all symbol keys, and convert them back to symbol keys after deserialization. Fixes #18741.
Diffstat (limited to 'activejob/test/jobs')
-rw-r--r--activejob/test/jobs/kwargs_job.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/activejob/test/jobs/kwargs_job.rb b/activejob/test/jobs/kwargs_job.rb
new file mode 100644
index 0000000000..2df17d15ae
--- /dev/null
+++ b/activejob/test/jobs/kwargs_job.rb
@@ -0,0 +1,7 @@
+require_relative '../support/job_buffer'
+
+class KwargsJob < ActiveJob::Base
+ def perform(argument: 1)
+ JobBuffer.add("Job with argument: #{argument}")
+ end
+end