Class: Similatron::Run
- Inherits:
-
Object
- Object
- Similatron::Run
- Defined in:
- lib/similatron/run.rb
Instance Attribute Summary collapse
-
#comparisons ⇒ Object
readonly
Returns the value of attribute comparisons.
Instance Method Summary collapse
- #compare(expected:, actual:) ⇒ Object
- #compare!(expected:, actual:) ⇒ Object
- #complete ⇒ Object
- #failed_comparisons ⇒ Object
- #html_report_path ⇒ Object
- #json_report_path ⇒ Object
- #overwrite_comparisons ⇒ Object
- #start(base_path: "tmp") ⇒ Object
- #summary ⇒ Object
Instance Attribute Details
#comparisons ⇒ Object (readonly)
Returns the value of attribute comparisons.
4 5 6 |
# File 'lib/similatron/run.rb', line 4 def comparisons @comparisons end |
Instance Method Details
#compare(expected:, actual:) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/similatron/run.rb', line 24 def compare(expected:, actual:) comparison = if File.exist?(expected) real_comparison(expected, actual) else copy_comparison(expected, actual) end comparisons << comparison comparison end |
#compare!(expected:, actual:) ⇒ Object
35 36 37 38 |
# File 'lib/similatron/run.rb', line 35 def compare!(expected:, actual:) comparison = compare(expected: expected, actual: actual) comparison.raise_when_different end |
#complete ⇒ Object
20 21 22 |
# File 'lib/similatron/run.rb', line 20 def complete write_reports end |
#failed_comparisons ⇒ Object
58 59 60 |
# File 'lib/similatron/run.rb', line 58 def failed_comparisons comparisons.reject(&:same?) end |
#html_report_path ⇒ Object
54 55 56 |
# File 'lib/similatron/run.rb', line 54 def html_report_path File.join(run_path, "report.html") end |
#json_report_path ⇒ Object
50 51 52 |
# File 'lib/similatron/run.rb', line 50 def json_report_path File.join(run_path, "report.json") end |
#overwrite_comparisons ⇒ Object
62 63 64 |
# File 'lib/similatron/run.rb', line 62 def overwrite_comparisons comparisons.select(&:overwrite?) end |
#start(base_path: "tmp") ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/similatron/run.rb', line 6 def start(base_path: "tmp") run_id = SecureRandom.urlsafe_base64(8) @run_path = File.join(base_path, "run_#{run_id}") @engines = [ ImagemagickComparisonEngine.new(diffs_path: run_path), DiffComparisonEngine.new(diffs_path: run_path), BinaryDiffComparisonEngine.new(diffs_path: run_path) ] @comparisons = [] FileUtils.mkdir_p(run_path) end |
#summary ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/similatron/run.rb', line 40 def summary return "" if failed_comparisons.empty? && overwrite_comparisons.empty? [ "Similatron report:", "#{failed_comparisons.count} failures.", "#{overwrite_comparisons.count} new files.", "Report may be found in #{html_report_path}" ].join("\n") end |