From d2c094aa5081677bf537a1553d0a756fcafcfb4e Mon Sep 17 00:00:00 2001 From: bogdanvlviv Date: Sat, 17 Feb 2018 00:15:11 +0200 Subject: Add argument serializer `TimeWithZoneSerializer` The serializer serializes an instance of `ActiveSupport::TimeWithZone`. The serializer deserializes value to `ActiveSupport::TimeWithZone` if possible. --- .../serializers/time_with_zone_serializer.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 activejob/lib/active_job/serializers/time_with_zone_serializer.rb (limited to 'activejob/lib/active_job/serializers/time_with_zone_serializer.rb') diff --git a/activejob/lib/active_job/serializers/time_with_zone_serializer.rb b/activejob/lib/active_job/serializers/time_with_zone_serializer.rb new file mode 100644 index 0000000000..43017fc75b --- /dev/null +++ b/activejob/lib/active_job/serializers/time_with_zone_serializer.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module ActiveJob + module Serializers + class TimeWithZoneSerializer < ObjectSerializer # :nodoc: + def serialize(time) + super("value" => time.iso8601) + end + + def deserialize(hash) + Time.iso8601(hash["value"]).in_time_zone + end + + private + + def klass + ActiveSupport::TimeWithZone + end + end + end +end -- cgit v1.2.3