Sha256: e69b1f7cf4a74b427ad010543a10e36e1d4164116dd63e077b86a952c60ba3b2

Contents?: true

Size: 633 Bytes

Versions: 43

Compression:

Stored size: 633 Bytes

Contents

require 'avromatic/model/attribute/abstract_timestamp'

module Avromatic
  module Model
    module Attribute

      # This subclass is used to truncate timestamp values to milliseconds.
      class TimestampMillis < AbstractTimestamp

        def value_coerced?(value)
          value.is_a?(Time) && value.usec % 1000 == 0
        end

        private

        def coerce_time(value)
          # value is coerced to a local Time
          # The Avro representation of a timestamp is Epoch seconds, independent
          # of time zone.
          Time.at(value.to_i, value.usec / 1000 * 1000)
        end

      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
avromatic-0.10.0.rc1 lib/avromatic/model/attribute/timestamp_millis.rb
avromatic-0.10.0.rc0 lib/avromatic/model/attribute/timestamp_millis.rb
avromatic-0.9.0 lib/avromatic/model/attribute/timestamp_millis.rb