class StonesSpec::Example
Public Class Methods
new(subject, attributes)
click to toggle source
Calls superclass method
# File lib/stones_spec/example.rb, line 7 def initialize(subject, attributes) super attributes @title = attributes[:title] @subject = subject @precondition = Precondition.from_example(self) end
Public Instance Methods
execute!(files)
click to toggle source
# File lib/stones_spec/example.rb, line 19 def execute!(files) result, status = run_command "#{Gobstones.run(files[:source], files[:initial_board], files[:final_board])} 2>&1" { result: result, status: status } end
execution_data(source)
click to toggle source
# File lib/stones_spec/example.rb, line 14 def execution_data(source) { source: @subject.test_program(source, @precondition.arguments), initial_board: @precondition.initial_board_gbb } end
result(files, execution, postcondition)
click to toggle source
# File lib/stones_spec/example.rb, line 24 def result(files, execution, postcondition) if execution[:status] == :aborted raise Gobstones::AbortedError, execution[:result] end if execution[:status] == :failed error_message = Gobstones.parse_error_message execution[:result] Gobstones.ensure_no_syntax_error! error_message end postcondition.validate(files[:initial_board].open.read, files[:final_board].open.read, execution[:result], execution[:status]) end
title()
click to toggle source
# File lib/stones_spec/example.rb, line 37 def title @title || default_title end
Private Instance Methods
default_title()
click to toggle source
# File lib/stones_spec/example.rb, line 43 def default_title @subject.default_title @precondition.arguments end