class Similatron::ComparisonEngine
Attributes
diff_index[R]
diffs_path[R]
given_executable_path[R]
Public Class Methods
new(executable_path: nil, diffs_path:)
click to toggle source
# File lib/similatron/comparison_engine.rb, line 3 def initialize(executable_path: nil, diffs_path:) @given_executable_path = executable_path @diffs_path = diffs_path end
Public Instance Methods
compare(expected:, actual:)
click to toggle source
# File lib/similatron/comparison_engine.rb, line 8 def compare(expected:, actual:) increase_diff_index command = command(expected, actual, diff_path) exec_result = run(command) Comparison.new( expected: expected, actual: actual, score: score(exec_result), diff: diff(exec_result) ) end
Protected Instance Methods
diff_path()
click to toggle source
# File lib/similatron/comparison_engine.rb, line 37 def diff_path File.join(diffs_path, "diff_#{diff_index}.#{diff_extension}") end
executable_path()
click to toggle source
# File lib/similatron/comparison_engine.rb, line 41 def executable_path default_executable_path || given_executable_path end
increase_diff_index()
click to toggle source
# File lib/similatron/comparison_engine.rb, line 32 def increase_diff_index @diff_index ||= 0 @diff_index += 1 end
run(command)
click to toggle source
# File lib/similatron/comparison_engine.rb, line 27 def run(command) exec_info = Open3.capture3(command) Open3Result.new(*exec_info) end