aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorJake Good2010-03-23 19:56:20 -0500
committerAdam Vandenberg2010-03-23 21:23:25 -0700
commit9fbc26a39ff86f3a9b1ea0f79b502f5736a5119b (patch)
tree995c40b0b4ffcb1e77937bc7c21a1d25ab733b55 /Library/Homebrew/extend
parent6586f89a29325d312a660cd80a3ea857c350e38a (diff)
downloadbrew-9fbc26a39ff86f3a9b1ea0f79b502f5736a5119b.tar.bz2
More effective use of incremental MD5 to eliminate loading entire tarball into memory
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/pathname.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb
index 4416e0efe..e2489a51b 100644
--- a/Library/Homebrew/extend/pathname.rb
+++ b/Library/Homebrew/extend/pathname.rb
@@ -157,7 +157,13 @@ class Pathname
def md5
require 'digest'
- Digest::MD5.hexdigest(File.read(self))
+ incr_md5 = Digest::MD5.new
+ self.open('r') do |f|
+ f.each_line do |line|
+ incr_md5 << line
+ end
+ end
+ incr_md5.hexdigest
end
if '1.9' <= RUBY_VERSION