class Ojo::Ojo
Public Instance Methods
compare(branch_1, branch_2)
click to toggle source
# File lib/ojo/comparison.rb, line 3 def compare(branch_1, branch_2) all_files = compile_file_lists(get_branch_files(branch_1), get_branch_files(branch_2)) FileUtils.mkdir_p(File.join(::Ojo.configuration.location, 'diff')) all_same = true results = { :location => ::Ojo.configuration.location, :branch_1 => branch_1, :branch_2 => branch_2, :results => [] } ::Ojo::ProgressBar.start({:min => 0, :max => all_files.count, :method => :percent, :step_size => 1}) all_files.each do |file| diff_file = File.join(::Ojo.configuration.location, 'diff', File.basename(file)) file_1 = make_comparable_filename(branch_1, file) file_2 = make_comparable_filename(branch_2, file) this_same, not_same_pixel_count = compare_one_set(file_1, file_2, diff_file) results[:results] << { :same => this_same, :file_1 => file_1, :file_2 => file_2, :not_same_pixel_count => not_same_pixel_count } all_same = all_same && (this_same != false) File.delete(diff_file) if this_same ::Ojo::ProgressBar.increment end ::Ojo::ProgressBar.complete [all_same, results] end
Private Instance Methods
compare_files(file_1, file_2, metric, fuzz_factor, resulting_file)
click to toggle source
# File lib/ojo/comparison.rb, line 59 def compare_files(file_1, file_2, metric, fuzz_factor, resulting_file) im = "compare -verbose -metric #{metric} -fuzz #{fuzz_factor} #{file_1} #{file_2} #{resulting_file}" raw_result = ::Ojo::ImageMagician.new.make_magic(im) ::Ojo::ImageMagician.new.unpack_comparison_result raw_result end
compare_one_set(file_1, file_2, diff_file)
click to toggle source
# File lib/ojo/comparison.rb, line 40 def compare_one_set(file_1, file_2, diff_file) same = nil if file_1 && file_2 ::Ojo::FileSizer.new.make_files_same_size(file_1, file_2) same = compare_files(file_1, file_2, ::Ojo.configuration.metric, ::Ojo.configuration.fuzz, diff_file) end same end
compile_file_lists(files_1, files_2)
click to toggle source
# File lib/ojo/comparison.rb, line 54 def compile_file_lists(files_1, files_2) all_files = files_1.dup all_files + files_2.select{ |f2| !files_1.include?(f2) } end
get_branch_files(branch_name)
click to toggle source
# File lib/ojo/comparison.rb, line 50 def get_branch_files(branch_name) Dir[File.join(::Ojo.configuration.location, branch_name, '*.png')].map{ |f| File.basename(f) } end
make_comparable_filename(branch, file_base)
click to toggle source
# File lib/ojo/comparison.rb, line 34 def make_comparable_filename(branch, file_base) name = File.join(::Ojo.configuration.location, branch, file_base) name = nil unless File.exist?(name) name end