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