File: digest_adapter.rb

package info (click to toggle)
jruby 1.5.1-1%2Bdeb6u1
  • links: PTS, VCS
  • area: non-free
  • in suites: squeeze-lts
  • size: 47,024 kB
  • ctags: 74,144
  • sloc: ruby: 398,155; java: 169,506; yacc: 3,782; xml: 2,469; ansic: 415; sh: 279; makefile: 78; tcl: 40
file content (49 lines) | stat: -rw-r--r-- 1,000 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems'

##
# 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 RubyGems.

class Gem::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