Class: Cucumber::Core::Test::Result::Duration

Inherits:
Object
  • Object
show all
Includes:
Messages::Helpers::TimeConversion
Defined in:
lib/cucumber/core/test/result/duration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nanoseconds) ⇒ Duration

Returns a new instance of Duration.



15
16
17
# File 'lib/cucumber/core/test/result/duration.rb', line 15

def initialize(nanoseconds)
  @nanoseconds = nanoseconds
end

Instance Attribute Details

#nanosecondsObject (readonly)

Returns the value of attribute nanoseconds.



13
14
15
# File 'lib/cucumber/core/test/result/duration.rb', line 13

def nanoseconds
  @nanoseconds
end

Instance Method Details

#seconds_to_duration(seconds_float) ⇒ Object



24
25
26
27
28
# File 'lib/cucumber/core/test/result/duration.rb', line 24

def seconds_to_duration(seconds_float)
  seconds, second_modulus = seconds_float.divmod(1)
  nanos = second_modulus * NANOSECONDS_PER_SECOND
  { seconds: seconds, nanos: nanos.to_i }
end

#to_message_durationObject



19
20
21
22
# File 'lib/cucumber/core/test/result/duration.rb', line 19

def to_message_duration
  duration_hash = seconds_to_duration(nanoseconds.to_f / NANOSECONDS_PER_SECOND)
  Cucumber::Messages::Duration.new(seconds: duration_hash[:seconds], nanos: duration_hash[:nanos])
end