lib/change.rb in change-0.1.2 vs lib/change.rb in change-0.1.3

- old
+ new

@@ -19,14 +19,14 @@ def d(reload=false) if @d && !reload @d else - paths = Dir.chdir(@root) { Dir["**/*"] } - add = paths - states.keys - rem = states.keys - paths - hashes = murmur_hashes(paths) + paths = Dir.chdir(@root) { Dir["**/*"] } + add = paths - states.keys + rem = states.keys - paths + hashes = file_hashes(paths) mod = paths.inject([]) do |array, path| hash = hashes[path] size = Dir.chdir(@root) { File.size(path) } @@ -46,11 +46,11 @@ mod -= add rem.each { |path| states.delete(path) } write! - @d = { :add => add, :mod => mod, :rem => rem } + @d = { :add => add.sort, :mod => mod.sort, :rem => rem.sort } end end def d_ @last_session @@ -81,18 +81,14 @@ def data @data ||= (YAML.load(File.read("#{@root}/.change.yml")) rescue {}) end - def murmur_bin - @murmur ||= File.expand_path('../../bin/murmur3', __FILE__) - end - - def murmur_hashes(paths) - hashes = Dir.chdir(@root) do - `#{murmur_bin} #{paths.collect { |m| "'#{m}'" }.join(' ')}` + def file_hashes(paths) + paths.inject({}) do |memo, path| + memo[path] = Digest::MD5.hexdigest(File.read("#{@root}/#{path}")) + memo end - Hash[paths.zip(hashes.split("\n"))] end def deps data['deps'] ||= {} end \ No newline at end of file