class Protip::Transformers::DeprecatedTransformer::TimeWithZoneTransformer

Public Instance Methods

to_message(object, field) click to toggle source
# File lib/protip/transformers/deprecated_transformer.rb, line 76
def to_message(object, field)
  if !object.is_a?(::ActiveSupport::TimeWithZone) && (object.is_a?(Time) || object.is_a?(DateTime))
    object = ::ActiveSupport::TimeWithZone.new(object.to_time.utc, ::ActiveSupport::TimeZone.new('UTC'))
  end
  raise ArgumentError.new("Expected ActiveSupport::TimeWithZone, received #{object.class.name}") unless object.is_a?(::ActiveSupport::TimeWithZone)

  field.subtype.msgclass.new(
    utc_timestamp: object.to_i,
    time_zone_name: object.time_zone.name,
  )
end
to_object(message, field) click to toggle source
# File lib/protip/transformers/deprecated_transformer.rb, line 70
def to_object(message, field)
  ActiveSupport::TimeWithZone.new(
    Time.at(message.utc_timestamp).utc,
    ActiveSupport::TimeZone.new(message.time_zone_name)
  )
end