summaryrefslogtreecommitdiff
path: root/trunk/lib/rubygems/digest
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-25 15:02:05 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-25 15:02:05 +0000
commit0dc342de848a642ecce8db697b8fecd83a63e117 (patch)
tree2b7ed4724aff1f86073e4740134bda9c4aac1a39 /trunk/lib/rubygems/digest
parentef70cf7138ab8034b5b806f466e4b484b24f0f88 (diff)
added tag v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/lib/rubygems/digest')
-rwxr-xr-xtrunk/lib/rubygems/digest/digest_adapter.rb40
-rwxr-xr-xtrunk/lib/rubygems/digest/md5.rb23
-rwxr-xr-xtrunk/lib/rubygems/digest/sha1.rb17
-rwxr-xr-xtrunk/lib/rubygems/digest/sha2.rb17
4 files changed, 97 insertions, 0 deletions
diff --git a/trunk/lib/rubygems/digest/digest_adapter.rb b/trunk/lib/rubygems/digest/digest_adapter.rb
new file mode 100755
index 0000000000..d5a00b059d
--- /dev/null
+++ b/trunk/lib/rubygems/digest/digest_adapter.rb
@@ -0,0 +1,40 @@
+#!/usr/bin/env ruby
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+module Gem
+
+ # There is an incompatibility between the way Ruby 1.8.5 and 1.8.6
+ # handles digests. This DigestAdapter will take a pre-1.8.6 digest
+ # and adapt it to the 1.8.6 API.
+ #
+ # Note that only the digest and hexdigest methods are adapted,
+ # since these are the only functions used by Gems.
+ #
+ class DigestAdapter
+
+ # Initialize a digest adapter.
+ def initialize(digest_class)
+ @digest_class = digest_class
+ end
+
+ # Return a new digester. Since we are only implementing the stateless
+ # methods, we will return ourself as the instance.
+ def new
+ self
+ end
+
+ # Return the digest of +string+ as a hex string.
+ def hexdigest(string)
+ @digest_class.new(string).hexdigest
+ end
+
+ # Return the digest of +string+ as a binary string.
+ def digest(string)
+ @digest_class.new(string).digest
+ end
+ end
+end \ No newline at end of file
diff --git a/trunk/lib/rubygems/digest/md5.rb b/trunk/lib/rubygems/digest/md5.rb
new file mode 100755
index 0000000000..f924579c08
--- /dev/null
+++ b/trunk/lib/rubygems/digest/md5.rb
@@ -0,0 +1,23 @@
+#!/usr/bin/env ruby
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+require 'digest/md5'
+
+# :stopdoc:
+module Gem
+ if RUBY_VERSION >= '1.8.6'
+ MD5 = Digest::MD5
+ else
+ require 'rubygems/digest/digest_adapter'
+ MD5 = DigestAdapter.new(Digest::MD5)
+ def MD5.md5(string)
+ self.hexdigest(string)
+ end
+ end
+end
+# :startdoc:
+
diff --git a/trunk/lib/rubygems/digest/sha1.rb b/trunk/lib/rubygems/digest/sha1.rb
new file mode 100755
index 0000000000..2a6245dcd9
--- /dev/null
+++ b/trunk/lib/rubygems/digest/sha1.rb
@@ -0,0 +1,17 @@
+#!/usr/bin/env ruby
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+require 'digest/sha1'
+
+module Gem
+ if RUBY_VERSION >= '1.8.6'
+ SHA1 = Digest::SHA1
+ else
+ require 'rubygems/digest/digest_adapter'
+ SHA1 = DigestAdapter.new(Digest::SHA1)
+ end
+end \ No newline at end of file
diff --git a/trunk/lib/rubygems/digest/sha2.rb b/trunk/lib/rubygems/digest/sha2.rb
new file mode 100755
index 0000000000..7bef16aed2
--- /dev/null
+++ b/trunk/lib/rubygems/digest/sha2.rb
@@ -0,0 +1,17 @@
+#!/usr/bin/env ruby
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+require 'digest/sha2'
+
+module Gem
+ if RUBY_VERSION >= '1.8.6'
+ SHA256 = Digest::SHA256
+ else
+ require 'rubygems/digest/digest_adapter'
+ SHA256 = DigestAdapter.new(Digest::SHA256)
+ end
+end