class Gobstones::Batch

Attributes

content[RW]
examples[RW]
extra[RW]
options[RW]

Public Class Methods

new(content, examples, extra, options) click to toggle source
# File lib/gobstones/batch.rb, line 5
def initialize(content, examples, extra, options)
  @content = content
  @examples = examples
  @extra = extra
  @options = options
  @compilation_mode = @options[:game_framework] ? Gobstones::CompilationMode::GameFramework : Gobstones::CompilationMode::Classic
end

Public Instance Methods

run_tests!(output) click to toggle source
# File lib/gobstones/batch.rb, line 13
def run_tests!(output)
  Mumukit::Metatest::Framework.new(
    checker: Gobstones::Checker.new(options),
    runner: Gobstones::MultipleExecutionsRunner.new).test output, examples
end
to_json() click to toggle source
# File lib/gobstones/batch.rb, line 19
def to_json
  {
    code: compile_content(content),
    extraCode: compile_extra(extra),
    examples: examples.map { |example| example_json(example) }
  }.to_json
end

Private Instance Methods

example_base_json(example) click to toggle source
# File lib/gobstones/batch.rb, line 35
def example_base_json(example)
  example_code = example_code(example)
  base = { initialBoard: example[:preconditions][:initial_board] }
  example_code ? base.merge(generatedCode: example_code) : base
end
example_code(example) click to toggle source
# File lib/gobstones/batch.rb, line 41
def example_code(example)
  Gobstones::ExampleCodeBuilder.new(content, example, options).build
end
example_json(example) click to toggle source
# File lib/gobstones/batch.rb, line 29
def example_json(example)
  expected_board = example[:postconditions][:final_board]
  base = example_base_json(example)
  expected_board ? base.merge(extraBoard: expected_board) : base
end