class Greybox::Runner
Attributes
config[R]
failures[R]
Public Class Methods
new(config)
click to toggle source
# File lib/greybox/runner.rb, line 6 def initialize(config) @config = config @failures = [] end
Public Instance Methods
expected_filename(input_filename)
click to toggle source
# File lib/greybox/runner.rb, line 15 def expected_filename(input_filename) expected_filename = config.expected.call(input_filename) raise "Output filename for #{input_filename} was same as input!" if expected_filename == input_filename expected_filename end
expected_for(filename)
click to toggle source
# File lib/greybox/runner.rb, line 21 def expected_for(filename) file = expected_filename(filename) unless File.exist?(file) raise "No blackbox_command available to generate #{file}" unless config.blackbox_command File.open(file, 'w') do |f| f.write run_command(config.blackbox_command, filename) end end File.read(file) end
files()
click to toggle source
# File lib/greybox/runner.rb, line 11 def files Dir.glob(config.input) end
insert_filename(command, filename)
click to toggle source
# File lib/greybox/runner.rb, line 44 def insert_filename(command, filename) command.gsub("%", filename) end
report_failure(filename, expected, actual)
click to toggle source
# File lib/greybox/runner.rb, line 48 def report_failure(filename, expected, actual) @failures << { filename: filename, expected: expected, actual: actual } end
run()
click to toggle source
# File lib/greybox/runner.rb, line 32 def run files.each do |input_file| expected = expected_for(input_file) actual = run_command(config.test_command, input_file) report_failure(input_file, expected, actual) unless config.comparison.call(actual, expected) end end
run_command(command, file)
click to toggle source
# File lib/greybox/runner.rb, line 40 def run_command(command, file) `#{insert_filename(command, file)}` end