class SecurizeString::DigestFinder
A Helper class to look-up digests easily.
Constants
- DIGESTS
Public Class Methods
digests()
click to toggle source
Returns the complete list of digest strings recognized by find.
# File lib/securize_string/digest_finder.rb, line 31 def self.digests @supported_digests = DIGESTS.keys.inject([]) {|a,v| a | [v.upcase, v.downcase]}.sort if @supported_digests.nil? return @supported_digests end
find(obj)
click to toggle source
Returns the OpenSSL::Digest class that goes with a given argument.
# File lib/securize_string/digest_finder.rb, line 37 def self.find(obj) if( obj.kind_of?(OpenSSL::Digest) ) klass = obj.class elsif( obj.kind_of?(Class) && (obj < OpenSSL::Digest) ) klass = obj elsif( obj.kind_of?(Class) && (obj < Digest::Base) ) klass = DIGESTS[obj.name.split('::').last.upcase] elsif( obj.kind_of?(Digest::Base) ) klass = DIGESTS[obj.class.name.split('::').last.upcase] else klass = DIGESTS[obj.to_s.upcase] end raise ArgumentError, "Cannot convert to OpenSSL::Digest: #{obj.inspect}" if klass.nil? return klass end