module Protip::Transformers::ActiveSupport::TimeWithZoneTransformer
Public Instance Methods
to_message(value, message_class)
click to toggle source
# File lib/protip/transformers/active_support/time_with_zone_transformer.rb, line 21 def to_message(value, message_class) if !value.is_a?(::ActiveSupport::TimeWithZone) && (value.is_a?(Time) || value.is_a?(DateTime)) value = ::ActiveSupport::TimeWithZone.new(value.to_time.utc, ::ActiveSupport::TimeZone.new('UTC')) end raise ArgumentError.new("Expected ActiveSupport::TimeWithZone, received #{value.class.name}") unless value.is_a?(::ActiveSupport::TimeWithZone) message_class.new( utc_timestamp: value.to_i, time_zone_name: value.time_zone.name, ) end
to_object(message)
click to toggle source
# File lib/protip/transformers/active_support/time_with_zone_transformer.rb, line 14 def to_object(message) ActiveSupport::TimeWithZone.new( Time.at(message.utc_timestamp).utc, ActiveSupport::TimeZone.new(message.time_zone_name) ) end
transformable?(message_class)
click to toggle source
# File lib/protip/transformers/active_support/time_with_zone_transformer.rb, line 10 def transformable?(message_class) message_class == ::Protip::Messages::ActiveSupport::TimeWithZone end