Sha256: 1a7dc7f67f377cd7692124118ddacbbf621666f194eb34ef8ee4b483ded971c1

Contents?: true

Size: 894 Bytes

Versions: 5

Compression:

Stored size: 894 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} #{locale_argument}"
  end

  def locale_argument
    "--language #{@locale}" if @locale
  end

  def compile(request)
    add_missing_headers! request
    @locale = request[:locale]
    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

5 entries across 5 versions & 1 rubygems

Version Path
mumuki-gobstones-runner-1.6.1 lib/precompile_hook.rb
mumuki-gobstones-runner-1.6.0 lib/precompile_hook.rb
mumuki-gobstones-runner-1.5.2 lib/precompile_hook.rb
mumuki-gobstones-runner-1.5.1 lib/precompile_hook.rb
mumuki-gobstones-runner-1.5.0 lib/precompile_hook.rb