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
22
# File 'lib/monet/baseline_control.rb', line 13

def initialize(config)
  @capture_dir = config.capture_dir
  @baseline_dir = config.baseline_dir

  strategy = Monet.const_get(config.compare_type)

  @comparer = Monet::Compare.new(strategy)
  @router = Monet::PathRouter.new(config)
  @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



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

def baseline(diff)
  path = diff.path
  to = site_dir(@baseline_dir)

  FileUtils.mkpath to unless Dir.exists? to
  FileUtils.move(path, to)

  puts "baselining #{path}"

  @router.capture_to_baseline(path)
end

#capturesObject



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

def captures
  Dir.glob File.join(site_dir(@capture_dir), "*.png")
end

#compare(diff) ⇒ Object



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

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



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

def discard(path)
  puts "discarding #{path}"
  FileUtils.remove(path)
end

#runObject



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

def run
  captures.each do |capture|
    baseline_path = @router.capture_to_baseline(capture)
    compare @comparer.compare(baseline_path, capture)
  end

  @flags
end