Class: Tsumetogi::DiffStrategies::LowMemory

Inherits:
Base
  • Object
show all
Defined in:
lib/tsumetogi/diff_strategies/low_memory.rb

Instance Method Summary collapse

Methods inherited from Base

#after_reference, #before_reference

Constructor Details

#initialize(config = nil) ⇒ LowMemory

Returns a new instance of LowMemory.



11
12
13
# File 'lib/tsumetogi/diff_strategies/low_memory.rb', line 11

def initialize(config = nil)
  super
end

Instance Method Details

#after_matchObject



36
37
38
# File 'lib/tsumetogi/diff_strategies/low_memory.rb', line 36

def after_match
  FileUtils.remove_entry_secure @tmp_dir
end

#before_matchObject



32
33
34
# File 'lib/tsumetogi/diff_strategies/low_memory.rb', line 32

def before_match
  @tmp_dir = Dir.mktmpdir
end

#difference(reference, target) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tsumetogi/diff_strategies/low_memory.rb', line 15

def difference(reference, target)
  diff_path = File.join(@tmp_dir, "diff.png")

  diff_cmd  = ["composite", "-compose", "difference"]
  diff_cmd << reference
  diff_cmd << target
  diff_cmd << diff_path
  system *diff_cmd

  id_cmd  = ["identify"]
  id_cmd += ["-format", "%[mean]"]
  id_cmd << diff_path
  diff = `#{id_cmd.join(" ")}`

  diff.chomp.to_f / 65535
end