Class: Monet::BaselineControl

Inherits:
Object
  • Object
show all
Defined in:
lib/monet/baseline_control.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ BaselineControl

Returns a new instance of BaselineControl.



13
14
15
16
17
18
19
20
21
# File 'lib/monet/baseline_control.rb', line 13

def initialize(config)
  @config = config

  strategy = Monet.const_get(config.compare_type)

  @router = Monet::Router.new config
  @comparer = Monet::Compare.new(strategy)
  @flags = []
end

Instance Attribute Details

#flagsObject (readonly)

Returns the value of attribute flags.



11
12
13
# File 'lib/monet/baseline_control.rb', line 11

def flags
  @flags
end

Instance Method Details

#baseline(diff) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/monet/baseline_control.rb', line 52

def baseline(diff)
  image = diff.is_a?(String) ? Monet::Image.new(diff) : diff.image

  puts "baselining #{image.path}"
  image = rebase(image)

  # delete diff image
  discard @router.diff_dir(image.name)

  image.thumbnail!(@router.thumbnail_dir) if @config.thumbnail?
  image.path
end

#capturesObject



40
41
42
43
44
45
# File 'lib/monet/baseline_control.rb', line 40

def captures
  files = Dir.glob(File.join(@config.capture_dir, @config.site, "*.png"))
  files.map do |path|
    Monet::Image.new(path)
  end
end

#compare(diff) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/monet/baseline_control.rb', line 31

def compare(diff)
  return baseline(diff) if diff.is_a? Monet::BaselessImage
  return discard(diff.path) unless diff.modified?

  puts "diff found #{diff.path}"

  @flags << diff.path
end

#discard(path) ⇒ Object



47
48
49
50
# File 'lib/monet/baseline_control.rb', line 47

def discard(path)
  puts "discarding #{path}"
  FileUtils.remove(path) if File.exists?(path)
end

#runObject



23
24
25
26
27
28
29
# File 'lib/monet/baseline_control.rb', line 23

def run
  captures.each do |img|
    compare @comparer.compare(@router.baseline_dir(img.name), img.path)
  end

  @flags
end