Class: Ukiryu::Execution::ExecutionMetadata
- Inherits:
-
Object
- Object
- Ukiryu::Execution::ExecutionMetadata
- Defined in:
- lib/ukiryu/execution/metadata.rb
Overview
Execution metadata
Provides timing and execution environment information
Instance Attribute Summary collapse
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
-
#finished_at ⇒ Object
readonly
Returns the value of attribute finished_at.
-
#started_at ⇒ Object
readonly
Returns the value of attribute started_at.
-
#timeout ⇒ Object
readonly
Returns the value of attribute timeout.
Instance Method Summary collapse
-
#calculate_duration ⇒ Float?
Calculate duration from start and finish times.
-
#duration_milliseconds ⇒ Float?
Get execution duration in milliseconds.
-
#duration_seconds ⇒ Float?
Get execution duration in seconds.
-
#formatted_duration ⇒ String
Format duration for display.
-
#initialize(started_at:, finished_at:, timeout: nil) ⇒ ExecutionMetadata
constructor
A new instance of ExecutionMetadata.
-
#inspect ⇒ String
Inspect.
-
#timed_out? ⇒ Boolean
Check if execution timed out.
-
#to_h ⇒ Hash
Convert to hash.
-
#to_s ⇒ String
String representation.
Constructor Details
#initialize(started_at:, finished_at:, timeout: nil) ⇒ ExecutionMetadata
Returns a new instance of ExecutionMetadata.
11 12 13 14 15 16 |
# File 'lib/ukiryu/execution/metadata.rb', line 11 def initialize(started_at:, finished_at:, timeout: nil) @started_at = started_at @finished_at = finished_at @timeout = timeout @duration = calculate_duration end |
Instance Attribute Details
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
9 10 11 |
# File 'lib/ukiryu/execution/metadata.rb', line 9 def duration @duration end |
#finished_at ⇒ Object (readonly)
Returns the value of attribute finished_at.
9 10 11 |
# File 'lib/ukiryu/execution/metadata.rb', line 9 def finished_at @finished_at end |
#started_at ⇒ Object (readonly)
Returns the value of attribute started_at.
9 10 11 |
# File 'lib/ukiryu/execution/metadata.rb', line 9 def started_at @started_at end |
#timeout ⇒ Object (readonly)
Returns the value of attribute timeout.
9 10 11 |
# File 'lib/ukiryu/execution/metadata.rb', line 9 def timeout @timeout end |
Instance Method Details
#calculate_duration ⇒ Float?
Calculate duration from start and finish times
21 22 23 24 25 |
# File 'lib/ukiryu/execution/metadata.rb', line 21 def calculate_duration return nil unless @started_at && @finished_at @finished_at - @started_at end |
#duration_milliseconds ⇒ Float?
Get execution duration in milliseconds
37 38 39 |
# File 'lib/ukiryu/execution/metadata.rb', line 37 def duration_milliseconds @duration ? @duration * 1000 : nil end |
#duration_seconds ⇒ Float?
Get execution duration in seconds
30 31 32 |
# File 'lib/ukiryu/execution/metadata.rb', line 30 def duration_seconds @duration end |
#formatted_duration ⇒ String
Format duration for display
53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/ukiryu/execution/metadata.rb', line 53 def formatted_duration return 'N/A' unless @duration if @duration < 1 "#{(@duration * 1000).round(2)}ms" elsif @duration < 60 "#{@duration.round(3)}s" else minutes = @duration / 60 seconds = @duration % 60 "#{minutes.to_i}m#{seconds.round(1)}s" end end |
#inspect ⇒ String
Inspect
92 93 94 |
# File 'lib/ukiryu/execution/metadata.rb', line 92 def inspect "#<Ukiryu::Execution::ExecutionMetadata duration=#{formatted_duration}>" end |
#timed_out? ⇒ Boolean
Check if execution timed out
44 45 46 47 48 |
# File 'lib/ukiryu/execution/metadata.rb', line 44 def timed_out? return false unless @timeout && @duration @duration > @timeout end |
#to_h ⇒ Hash
Convert to hash
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/ukiryu/execution/metadata.rb', line 70 def to_h { started_at: @started_at, finished_at: @finished_at, duration: @duration, duration_seconds: @duration, duration_milliseconds: duration_milliseconds, timeout: @timeout, timed_out: timed_out? } end |
#to_s ⇒ String
String representation
85 86 87 |
# File 'lib/ukiryu/execution/metadata.rb', line 85 def to_s "duration: #{formatted_duration}" end |