Class: Compatriot::ImageDiffer

Inherits:
Object
  • Object
show all
Defined in:
lib/compatriot/image_differ/image_differ.rb

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ ImageDiffer

Returns a new instance of ImageDiffer.



6
7
8
9
10
11
12
13
14
# File 'lib/compatriot/image_differ/image_differ.rb', line 6

def initialize(params = {})
  @paths    = params[:paths]
  @browsers = params[:browsers]
  @strategy = params[:strategy] || Compatriot::ColorDiffer
  @results_directory = params[:results_directory]
  @diffs    = {}

  create_diffs_path
end

Instance Method Details

#compute!Object



20
21
22
23
24
25
# File 'lib/compatriot/image_differ/image_differ.rb', line 20

def compute!
  @paths.map do |path|
    images_to_diff = @browsers.map { |b| b.absolute_screenshot_for(path) }
    @diffs[path] = diff(images_to_diff)
  end
end

#diff(results) ⇒ Object



27
28
29
# File 'lib/compatriot/image_differ/image_differ.rb', line 27

def diff(results)
  @strategy.diff(results.first, results.last)
end

#diff_for(path) ⇒ Object



16
17
18
# File 'lib/compatriot/image_differ/image_differ.rb', line 16

def diff_for(path)
  @diffs[path]
end

#diffs_pathObject



31
32
33
# File 'lib/compatriot/image_differ/image_differ.rb', line 31

def diffs_path
  File.join(@results_directory, "diffs")
end