class DotDiff::Comparer

Attributes

element[R]
page[R]
snapshot[R]

Public Class Methods

new(element, page, snapshot) click to toggle source
# File lib/dotdiff/comparer.rb, line 7
def initialize(element, page, snapshot)
  @page = page
  @element = element
  @snapshot = snapshot
end

Public Instance Methods

result() click to toggle source
# File lib/dotdiff/comparer.rb, line 13
def result
  comparer = build_comparer

  if comparer.nil?
    raise ArgumentError, "Unknown element class received: #{element.class.name}"
  end

  passed, msg = comparer.run
  write_failure_imgs(comparer.new_image_path) if !passed && DotDiff.failure_image_path

  [passed, msg]
end

Private Instance Methods

build_comparer() click to toggle source
# File lib/dotdiff/comparer.rb, line 33
def build_comparer
  if element.is_a?(Capybara::Session)
    DotDiff::Comparible::PageComparer.new(snapshot, nil)
  elsif element.is_a?(Capybara::Node::Base)
    DotDiff::Comparible::ElementComparer.new(snapshot, ElementMeta.new(page, element))
  end
end
write_failure_imgs(new_image_path) click to toggle source
# File lib/dotdiff/comparer.rb, line 28
def write_failure_imgs(new_image_path)
  FileUtils.mkdir_p(snapshot.failure_path)
  FileUtils.mv(new_image_path, snapshot.new_file, force: true)
end