class Similatron::PdfComparisonEngine

Public Instance Methods

can_handle_mime?(mime_type) click to toggle source
# File lib/similatron/pdf_comparison_engine.rb, line 4
def can_handle_mime?(mime_type)
  mime_type =~ %r{application/pdf}
end
compare(expected:, actual:) click to toggle source
# File lib/similatron/pdf_comparison_engine.rb, line 8
def compare(expected:, actual:)
  jpg_comparison = jpg_compare(expected: expected, actual: actual)

  Comparison.new(
    expected: expected,
    actual: actual,
    score: jpg_comparison.score,
    diff: jpg_comparison.diff
  )
end

Private Instance Methods

convert(pdf, jpg) click to toggle source
# File lib/similatron/pdf_comparison_engine.rb, line 43
def convert(pdf, jpg)
  `convert -append #{pdf} #{jpg}`
end
image_magick_engine() click to toggle source
# File lib/similatron/pdf_comparison_engine.rb, line 21
def image_magick_engine
  ImagemagickComparisonEngine.new(
    executable_path: given_executable_path,
    diffs_path: diffs_path
  )
end
jpg_compare(expected:, actual:) click to toggle source
# File lib/similatron/pdf_comparison_engine.rb, line 28
def jpg_compare(expected:, actual:)
  Dir.mktmpdir do |dir|
    jpg_expected = "#{dir}/expected.jpg"
    jpg_actual = "#{dir}/actual.jpg"

    convert(expected, jpg_expected)
    convert(actual, jpg_actual)

    image_magick_engine.compare(
      expected: jpg_expected,
      actual: jpg_actual
    )
  end
end