Sha256: 71098f94a05df3fdffd090ac663ef326cd52c4b5b4cfa15f2ed75fd836f8df0c

Contents?: true

Size: 772 Bytes

Versions: 3

Compression:

Stored size: 772 Bytes

Contents

class GobstonesPrecompileHook < Mumukit::Templates::FileHook
  attr_accessor :batch

  structured true
  isolated true

  def tempfile_extension
    '.json'
  end

  def command_line(filename)
    "gobstones-cli --batch #{filename}"
  end

  def compile(request)
    add_missing_headers! request
    file = super request

    struct request.to_h.merge batch: @batch,
                              result: run!(file)
  end

  def add_missing_headers!(request)
    request.test.gsub! /(.*(initial_board|final_board).*\n)(?!.*GBB\/1\.0.*)/, "\\1    GBB/1.0\\3\n"
  end

  def compile_file_content(request)
    @batch = Gobstones::BatchParser.parse(request)
    @batch.to_json
  end

  def post_process_file(_file, result, status)
    [result.parse_as_json, status]
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mumuki-gobstones-runner-1.4.0 lib/precompile_hook.rb
mumuki-gobstones-runner-1.3.0 lib/precompile_hook.rb
mumuki-gobstones-runner-1.2.0 lib/precompile_hook.rb