Sha256: 2db3ed8ab081022faa681f03c1ca5fbff161067b389c838db065a0a90ae4bd71

Contents?: true

Size: 802 Bytes

Versions: 14

Compression:

Stored size: 802 Bytes

Contents

module Cucumber
  module Messages
    module TimeConversion
      NANOSECONDS_PER_SECOND = 1000000000

      def time_to_timestamp(time)
        Timestamp.new(
          seconds: time.to_i,
          nanos: time.nsec
        )
      end

      def timestamp_to_time(timestamp)
        Time.at(timestamp.seconds + timestamp.nanos.to_f / NANOSECONDS_PER_SECOND)
      end

      def seconds_to_duration(seconds_float)
        seconds, second_modulus = seconds_float.divmod(1)
        nanos = second_modulus * NANOSECONDS_PER_SECOND
        Duration.new(seconds: seconds, nanos: nanos)
      end

      def duration_to_seconds(duration)
        seconds_part = duration.seconds
        nanos_part = duration.nanos.to_f / NANOSECONDS_PER_SECOND
        seconds_part + nanos_part
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
cucumber-messages-15.0.0 lib/cucumber/messages/time_conversion.rb
cucumber-messages-14.1.2 lib/cucumber/messages/time_conversion.rb
cucumber-messages-14.1.1 lib/cucumber/messages/time_conversion.rb
cucumber-messages-14.1.0 lib/cucumber/messages/time_conversion.rb
cucumber-messages-14.0.1 lib/cucumber/messages/time_conversion.rb
cucumber-messages-14.0.0 lib/cucumber/messages/time_conversion.rb
cucumber-messages-13.2.1 lib/cucumber/messages/time_conversion.rb
cucumber-messages-13.2.0 lib/cucumber/messages/time_conversion.rb
cucumber-messages-13.1.0 lib/cucumber/messages/time_conversion.rb
cucumber-messages-13.0.1 lib/cucumber/messages/time_conversion.rb
cucumber-messages-13.0.0 lib/cucumber/messages/time_conversion.rb
cucumber-messages-12.4.0 lib/cucumber/messages/time_conversion.rb
cucumber-messages-12.3.2 lib/cucumber/messages/time_conversion.rb
cucumber-messages-12.3.1 lib/cucumber/messages/time_conversion.rb