module FindDuplicates
Public Instance Methods
find_duplicates(options, paths)
click to toggle source
# File lib/find-duplicates.rb, line 57 def find_duplicates(options, paths) groups = Groups.new files = paths.map { |path| Dir.glob(path + '/**/*') }.flatten bar = options[:bar].call files.size files.each do |file| bar.increment next if File.directory?(file) groups.add file end groups.duplicates.each do |k,group| death_queue = options[:remove_policy].choose_to_die(group) survivor = [death_queue.first] death_queue = death_queue.slice(1..-1) if options[:dry] puts (survivor + death_queue.map { |s| " " + s }).join("\n") else death_queue.each { |file| File.delete file } end end end