aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/extend/pathname.rb14
1 files changed, 9 insertions, 5 deletions
diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb
index d0e77682c..aca499720 100644
--- a/Library/Homebrew/extend/pathname.rb
+++ b/Library/Homebrew/extend/pathname.rb
@@ -244,11 +244,15 @@ class Pathname
%r[^#!\s*\S+] === open('r') { |f| f.read(1024) }
end
- def incremental_hash(hasher)
- incr_hash = hasher.new
- buf = ""
- open('rb') { |f| incr_hash << buf while f.read(1024, buf) }
- incr_hash.hexdigest
+ def incremental_hash(klass)
+ digest = klass.new
+ if digest.respond_to?(:file)
+ digest.file(self)
+ else
+ buf = ""
+ open("rb") { |f| digest << buf while f.read(1024, buf) }
+ end
+ digest.hexdigest
end
def sha1