78: def initialize(source, target)
79: @source = source
80: @target = target
81:
82: src_files, src_dirs = scan(@source)
83: tgt_files, tgt_dirs = scan(@target)
84:
85:
86: @deleted = src_files - tgt_files
87: @created = tgt_files - src_files
88: @common = src_files & tgt_files
89: @moved = {}
90: @changed = {}
91:
92:
93: @deleted_dirs = src_dirs - tgt_dirs
94: @created_dirs = tgt_dirs - src_dirs
95:
96: @common.each do |file|
97: otime = File.mtime(File.join(source,file))
98: ntime = File.mtime(File.join(target,file))
99: if otime != ntime
100:
101: if File.size(File.join(source,file)) == 0
102: @created << file
103: else
104: @changed[file] = [otime, ntime]
105: end
106: end
107: end
108: end