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 =

RBS:

  • type step_document = Hash[String, Step::document_value]
    type document_value = String | Integer | Array[String] | Array[step_document]

Returns:

  • (String)
"table-simulation"
SCHEMA_VERSION =

Signature:

  • String

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])


25
26
27
28
29
30
31
32
33
34
# File 'lib/ibex/table_simulation/result.rb', line 25

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)


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

def algorithm
  @algorithm
end

#grammar_digestString (readonly)

Signature:

  • Integer

Returns:

  • (String)


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

def grammar_digest
  @grammar_digest
end

#statusSymbol (readonly)

Signature:

  • Symbol

Returns:

  • (Symbol)


20
21
22
# File 'lib/ibex/table_simulation/result.rb', line 20

def status
  @status
end

#stepsArray[Step] (readonly)

Signature:

  • Array[Step]

Returns:



21
22
23
# File 'lib/ibex/table_simulation/result.rb', line 21

def steps
  @steps
end

#tokensArray[String] (readonly)

Signature:

  • Array[String]

Returns:

  • (Array[String])


19
20
21
# File 'lib/ibex/table_simulation/result.rb', line 19

def tokens
  @tokens
end

Instance Method Details

#to_hHash[String, document_value]

RBS:

  • () -> Hash[String, document_value]

Returns:

  • (Hash[String, document_value])


37
38
39
40
41
42
43
44
45
46
47
# File 'lib/ibex/table_simulation/result.rb', line 37

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:

  • (*Object?) -> String

Parameters:

  • (Object, nil)

Returns:

  • (String)


50
51
52
# File 'lib/ibex/table_simulation/result.rb', line 50

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