diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2018-02-09 15:45:11 -0500 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2018-02-14 13:10:08 -0500 |
commit | b098584f63521d214c1107e6eaa24f292b8e4df8 (patch) | |
tree | a3988a89ff8bcd4333417e9d47a0610ddceab8b8 /activejob/lib/active_job/serializers/duration_serializer.rb | |
parent | ea615332452e6860872020aa161c5d34e81f1eea (diff) | |
download | rails-b098584f63521d214c1107e6eaa24f292b8e4df8.tar.gz rails-b098584f63521d214c1107e6eaa24f292b8e4df8.tar.bz2 rails-b098584f63521d214c1107e6eaa24f292b8e4df8.zip |
Add symbol and duration serializers
Diffstat (limited to 'activejob/lib/active_job/serializers/duration_serializer.rb')
-rw-r--r-- | activejob/lib/active_job/serializers/duration_serializer.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/activejob/lib/active_job/serializers/duration_serializer.rb b/activejob/lib/active_job/serializers/duration_serializer.rb new file mode 100644 index 0000000000..46543cc30d --- /dev/null +++ b/activejob/lib/active_job/serializers/duration_serializer.rb @@ -0,0 +1,24 @@ +module ActiveJob + module Serializers + class DurationSerializer < ObjectSerializer + class << self + def serialize(duration) + super("value" => duration.value, "parts" => Serializers.serialize(duration.parts)) + end + + def deserialize(hash) + value = hash["value"] + parts = Serializers.deserialize(hash["parts"]) + + klass.new(value, parts) + end + + private + + def klass + ActiveSupport::Duration + end + end + end + end +end |