Class: RLM::Sandbox::ExecutionResult

Inherits:
Object
  • Object
show all
Defined in:
lib/rlm/sandbox/execution_result.rb

Constant Summary collapse

STATUSES =
%i[ok error timeout budget_exceeded].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stdout: "", stderr: "", exit_code: 0, duration_ms: 0, events: [], status: :ok, error: nil) ⇒ ExecutionResult

Returns a new instance of ExecutionResult.

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rlm/sandbox/execution_result.rb', line 10

def initialize(
  stdout: "",
  stderr: "",
  exit_code: 0,
  duration_ms: 0,
  events: [],
  status: :ok,
  error: nil
)
  raise ArgumentError, "Unknown status: #{status.inspect}" unless STATUSES.include?(status)

  @stdout = stdout
  @stderr = stderr
  @exit_code = exit_code
  @duration_ms = duration_ms
  @events = events
  @status = status
  @error = error
end

Instance Attribute Details

#duration_msObject (readonly)

Returns the value of attribute duration_ms.



8
9
10
# File 'lib/rlm/sandbox/execution_result.rb', line 8

def duration_ms
  @duration_ms
end

#errorObject (readonly)

Returns the value of attribute error.



8
9
10
# File 'lib/rlm/sandbox/execution_result.rb', line 8

def error
  @error
end

#eventsObject (readonly)

Returns the value of attribute events.



8
9
10
# File 'lib/rlm/sandbox/execution_result.rb', line 8

def events
  @events
end

#exit_codeObject (readonly)

Returns the value of attribute exit_code.



8
9
10
# File 'lib/rlm/sandbox/execution_result.rb', line 8

def exit_code
  @exit_code
end

#statusObject (readonly)

Returns the value of attribute status.



8
9
10
# File 'lib/rlm/sandbox/execution_result.rb', line 8

def status
  @status
end

#stderrObject (readonly)

Returns the value of attribute stderr.



8
9
10
# File 'lib/rlm/sandbox/execution_result.rb', line 8

def stderr
  @stderr
end

#stdoutObject (readonly)

Returns the value of attribute stdout.



8
9
10
# File 'lib/rlm/sandbox/execution_result.rb', line 8

def stdout
  @stdout
end

Instance Method Details

#ok?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/rlm/sandbox/execution_result.rb', line 30

def ok?
  status == :ok
end

#to_hObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/rlm/sandbox/execution_result.rb', line 34

def to_h
  {
    status: status,
    exit_code: exit_code,
    duration_ms: duration_ms,
    stdout: stdout,
    stderr: stderr,
    events: events,
    error: error&.message
  }
end