Sha256: a79116a7ac5a45d0710c16d334fbf9ef30a6d7e2bbcf9de3e8b5cca31242fd9d

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

module StonesSpec
  module Gobstones
    def self.configure
      @config ||= OpenStruct.new
      yield @config
    end

    def self.config
      @config
    end

    def self.run(source_file, initial_board_file, final_board_file)
      "#{config.gbs_command} #{source_file.path} --from #{initial_board_file.path} --to #{final_board_file.path} --no-print-board --silent"
    end

    def self.parse_error_message(result)
      "<pre>#{ErrorMessageParser.parse result}</pre>"
    end

    def self.runtime_error?(result)
      result.include_any? ['Error en tiempo de ejecuciĆ³n', 'Error en el programa']
    end

    def self.syntax_error?(result)
      result.include? 'Error de sintaxis'
    end

    def self.source_code_extension
      'gbs'
    end

    def self.board_extension
      'gbb'
    end

    def self.ensure_no_syntax_error!(error_message)
      raise SyntaxError, error_message if syntax_error? error_message
    end

    class Error < Exception
    end

    class SyntaxError < Error
      def status
        :errored
      end
    end

    class AbortedError < Error
      def status
        :aborted
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
mumuki-xgobstones-runner-2.1.0 lib/stones_spec/gobstones.rb
mumuki-xgobstones-runner-2.0.0 lib/stones_spec/gobstones.rb
mumuki-gobstones-runner-1.0.1 lib/stones_spec/gobstones.rb
mumuki-gobstones-runner-1.0.0 lib/stones_spec/gobstones.rb