class Tsumetogi::DiffStrategies::LowMemory

Public Class Methods

new(config = nil) click to toggle source
Calls superclass method Tsumetogi::DiffStrategies::Base::new
# File lib/tsumetogi/diff_strategies/low_memory.rb, line 10
def initialize(config = nil)
  super
end

Public Instance Methods

after_match() click to toggle source
# File lib/tsumetogi/diff_strategies/low_memory.rb, line 35
def after_match
  FileUtils.remove_entry_secure @tmp_dir
end
before_match() click to toggle source
# File lib/tsumetogi/diff_strategies/low_memory.rb, line 31
def before_match
  @tmp_dir = Dir.mktmpdir
end
difference(reference, target) click to toggle source
# File lib/tsumetogi/diff_strategies/low_memory.rb, line 14
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