aboutsummaryrefslogtreecommitdiffstats
path: root/activejob
diff options
context:
space:
mode:
authorYuji Yaginuma <yuuji.yaginuma@gmail.com>2018-02-15 15:46:42 +0900
committeryuuji.yaginuma <yuuji.yaginuma@gmail.com>2018-02-16 14:56:05 +0900
commit3cc93de6ad58ee306b906a3d979b46276900711a (patch)
tree5567cec8b2daec741207815e1dd5e2735e429956 /activejob
parent23c5558f37c2c55807e7603415214f2b4b7b22c1 (diff)
downloadrails-3cc93de6ad58ee306b906a3d979b46276900711a.tar.gz
rails-3cc93de6ad58ee306b906a3d979b46276900711a.tar.bz2
rails-3cc93de6ad58ee306b906a3d979b46276900711a.zip
Fix custome serializer setting
The serializer should be set up in `after_initialize` so that it work properly even if the user specifies serializer with initializers. Also, since `custom_serializers` is `Array`, it needs to be flattened before setting the value.
Diffstat (limited to 'activejob')
-rw-r--r--activejob/lib/active_job/railtie.rb11
-rw-r--r--activejob/lib/active_job/serializers.rb2
2 files changed, 9 insertions, 4 deletions
diff --git a/activejob/lib/active_job/railtie.rb b/activejob/lib/active_job/railtie.rb
index 427ad1e3af..d0294854d3 100644
--- a/activejob/lib/active_job/railtie.rb
+++ b/activejob/lib/active_job/railtie.rb
@@ -14,8 +14,10 @@ module ActiveJob
end
initializer "active_job.custom_serializers" do |app|
- custom_serializers = app.config.active_job.delete(:custom_serializers)
- ActiveJob::Serializers.add_serializers custom_serializers
+ config.after_initialize do
+ custom_serializers = app.config.active_job.delete(:custom_serializers)
+ ActiveJob::Serializers.add_serializers custom_serializers
+ end
end
initializer "active_job.set_configs" do |app|
@@ -23,7 +25,10 @@ module ActiveJob
options.queue_adapter ||= :async
ActiveSupport.on_load(:active_job) do
- options.each { |k, v| send("#{k}=", v) }
+ options.each do |k, v|
+ k = "#{k}="
+ send(k, v) if respond_to? k
+ end
end
end
diff --git a/activejob/lib/active_job/serializers.rb b/activejob/lib/active_job/serializers.rb
index d9a130fa73..9930ae0823 100644
--- a/activejob/lib/active_job/serializers.rb
+++ b/activejob/lib/active_job/serializers.rb
@@ -49,7 +49,7 @@ module ActiveJob
# Adds a new serializer to a list of known serializers
def add_serializers(*new_serializers)
- self._additional_serializers += new_serializers
+ self._additional_serializers += new_serializers.flatten
end
end