Use Digest#file if it's available

This commit is contained in:
Jack Nagel 2014-06-11 12:05:19 -05:00
parent c0e0bd2984
commit 93d8e71641

View File

@ -244,11 +244,15 @@ class Pathname
%r[^#!\s*\S+] === open('r') { |f| f.read(1024) } %r[^#!\s*\S+] === open('r') { |f| f.read(1024) }
end end
def incremental_hash(hasher) def incremental_hash(klass)
incr_hash = hasher.new digest = klass.new
if digest.respond_to?(:file)
digest.file(self)
else
buf = "" buf = ""
open('rb') { |f| incr_hash << buf while f.read(1024, buf) } open("rb") { |f| digest << buf while f.read(1024, buf) }
incr_hash.hexdigest end
digest.hexdigest
end end
def sha1 def sha1