class DotDiff::Comparible::Base

Attributes

element_meta[R]
snapshot[R]

Public Class Methods

new(snapshot, element_meta) click to toggle source
# File lib/dotdiff/comparible/base.rb, line 6
def initialize(snapshot, element_meta)
  @snapshot = snapshot
  @element_meta = element_meta
end
run(snapshot, element_meta) click to toggle source
# File lib/dotdiff/comparible/base.rb, line 11
def self.run(snapshot, element_meta)
  new(snapshot, element_meta).run
end

Private Instance Methods

calculate_result(diff_pixels) click to toggle source
# File lib/dotdiff/comparible/base.rb, line 29
def calculate_result(diff_pixels)
  calc = DotDiff::ThresholdCalculator.new(
    DotDiff.pixel_threshold,
    img_container.total_pixels,
    diff_pixels
  )

  [calc.under_threshold?, calc.message]
end
compare(compare_to_image) click to toggle source
# File lib/dotdiff/comparible/base.rb, line 19
def compare(compare_to_image)
  return [false, img_container.dimensions_mismatch_msg] unless img_container.both_images_same_dimensions?

  cmd = CommandWrapper.new
  cmd.run(snapshot.basefile, new_image_path, snapshot.diff_file)
  return [cmd.passed?, cmd.message] if cmd.failed?

  calculate_result(cmd.pixels)
end
img_container() click to toggle source
# File lib/dotdiff/comparible/base.rb, line 39
def img_container
  @img_container ||= DotDiff::Image::Container.new(
    snapshot.basefile,
    new_image_path
  )
end