class FindDuplicates::Groups
Public Class Methods
new()
click to toggle source
# File lib/find-duplicates.rb, line 30 def initialize @hashes = {} end
Public Instance Methods
add(path)
click to toggle source
# File lib/find-duplicates.rb, line 33 def add(path) md5 = Digest::MD5.new begin File.open(path, 'rb') do |file_h| file_h.each(8192) do |block| md5.update block end end rescue $stderr.puts "problem: #{ $! }" return end digest = md5.digest if @hashes.key?(digest) @hashes[digest] << path else @hashes[digest] = [ path ] end end
duplicates()
click to toggle source
# File lib/find-duplicates.rb, line 52 def duplicates @hashes.find_all { |k,v| v.size > 1 } end