Sha256: 4530ab2987fc4e31dcf96fad54b35bd41736783f915909eb8adeada512e1ab59

Contents?: true

Size: 951 Bytes

Versions: 44

Compression:

Stored size: 951 Bytes

Contents

# frozen_string_literal: true

# MessagePack extention packer and unpacker for built-in Time class
module MessagePack
  module Time
    # 3-arg Time.at is available Ruby >= 2.5
    TIME_AT_3_AVAILABLE = begin
                            !!::Time.at(0, 0, :nanosecond)
                          rescue ArgumentError
                            false
                          end

    Unpacker = if TIME_AT_3_AVAILABLE
                 lambda do |payload|
                   tv = MessagePack::Timestamp.from_msgpack_ext(payload)
                   ::Time.at(tv.sec, tv.nsec, :nanosecond)
                 end
               else
                 lambda do |payload|
                   tv = MessagePack::Timestamp.from_msgpack_ext(payload)
                   ::Time.at(tv.sec, tv.nsec / 1000.0r)
                 end
               end

    Packer = lambda { |time|
      MessagePack::Timestamp.to_msgpack_ext(time.tv_sec, time.tv_nsec)
    }
  end
end

Version data entries

44 entries across 44 versions & 5 rubygems

Version Path
msgpack-1.8.0-java lib/msgpack/time.rb
msgpack-1.8.0 lib/msgpack/time.rb
msgpack-1.7.5 lib/msgpack/time.rb
msgpack-1.7.5-java lib/msgpack/time.rb
msgpack-1.7.4-java lib/msgpack/time.rb
msgpack-1.7.4 lib/msgpack/time.rb
msgpack-1.7.3-java lib/msgpack/time.rb
msgpack-1.7.3 lib/msgpack/time.rb
fluent-plugin-nuopenlineage-light-0.1.0 vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/time.rb
fluent-plugin-openlineage-light-0.1.4 vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/time.rb
fluent-plugin-openlineage-light-0.1.3 vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/time.rb
fluent-plugin-openlineage-0.1.0 vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/time.rb
msgpack-1.7.2-java lib/msgpack/time.rb
msgpack-1.7.2 lib/msgpack/time.rb
msgpack-1.7.1-java lib/msgpack/time.rb
msgpack-1.7.1 lib/msgpack/time.rb
fluent-plugin-google-cloud-logging-on-prem-0.1.0 vendor/ruby/3.1.0/gems/msgpack-1.7.0/lib/msgpack/time.rb
msgpack-1.7.0-java lib/msgpack/time.rb
msgpack-1.7.0 lib/msgpack/time.rb
msgpack-1.6.1-java lib/msgpack/time.rb