Class: Ibex::TableSimulation::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/ibex/table_simulation/result.rb,
sig/ibex/table_simulation/result.rbs

Overview

Final immutable simulation document.

Constant Summary collapse

IDENTIFIER =

Signature:

  • String

Returns:

  • (String)
"table-simulation"
SCHEMA_VERSION =

Signature:

  • Integer

Returns:

  • (Integer)
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(grammar_digest:, algorithm:, tokens:, status:, steps:) ⇒ Result

Returns a new instance of Result.

RBS:

  • (grammar_digest: String, algorithm: String, tokens: Array[String], status: Symbol, steps: Array[Step]) -> void

Parameters:

  • grammar_digest: (String)
  • algorithm: (String)
  • tokens: (Array[String])
  • status: (Symbol)
  • steps: (Array[Step])


21
22
23
24
25
26
27
28
29
30
# File 'lib/ibex/table_simulation/result.rb', line 21

def initialize(grammar_digest:, algorithm:, tokens:, status:, steps:)
  raise ArgumentError, "simulation status must be accepted or error" unless %i[accepted error].include?(status)

  @grammar_digest = grammar_digest.dup.freeze
  @algorithm = algorithm.dup.freeze
  @tokens = tokens.map { |token| token.dup.freeze }.freeze
  @status = status
  @steps = steps.dup.freeze
  freeze
end

Instance Attribute Details

#algorithmString (readonly)

Signature:

  • String

Returns:

  • (String)


14
15
16
# File 'lib/ibex/table_simulation/result.rb', line 14

def algorithm
  @algorithm
end

#grammar_digestString (readonly)

Signature:

  • String

Returns:

  • (String)


13
14
15
# File 'lib/ibex/table_simulation/result.rb', line 13

def grammar_digest
  @grammar_digest
end

#statusSymbol (readonly)

Signature:

  • Symbol

Returns:

  • (Symbol)


16
17
18
# File 'lib/ibex/table_simulation/result.rb', line 16

def status
  @status
end

#stepsArray[Step] (readonly)

Signature:

  • Array[Step]

Returns:



17
18
19
# File 'lib/ibex/table_simulation/result.rb', line 17

def steps
  @steps
end

#tokensArray[String] (readonly)

Signature:

  • Array[String]

Returns:

  • (Array[String])


15
16
17
# File 'lib/ibex/table_simulation/result.rb', line 15

def tokens
  @tokens
end

Instance Method Details

#to_hHash[String, untyped]

RBS:

  • () -> Hash[String, untyped]

Returns:

  • (Hash[String, untyped])


33
34
35
36
37
38
39
40
41
42
43
# File 'lib/ibex/table_simulation/result.rb', line 33

def to_h
  {
    "ibex_table_simulation" => IDENTIFIER,
    "schema_version" => SCHEMA_VERSION,
    "grammar_digest" => @grammar_digest,
    "algorithm" => @algorithm,
    "tokens" => @tokens,
    "status" => @status.to_s,
    "steps" => @steps.map(&:to_h)
  }
end

#to_jsonString

RBS:

  • (*untyped) -> String

Parameters:

  • (Object)

Returns:

  • (String)


46
47
48
# File 'lib/ibex/table_simulation/result.rb', line 46

def to_json(*)
  "#{JSON.pretty_generate(to_h)}\n"
end