Public: Create deep nested digest of value object.
Useful for object comparison.
obj - Object to digest.
Returns String hex digest
# File lib/linguist/md5.rb, line 12 def self.hexdigest(obj) digest = Digest::MD5.new case obj when String, Symbol, Integer digest.update "#{obj.class}" digest.update "#{obj}" when TrueClass, FalseClass, NilClass digest.update "#{obj.class}" when Array digest.update "#{obj.class}" for e in obj digest.update(hexdigest(e)) end when Hash digest.update "#{obj.class}" for e in obj.map { |(k, v)| hexdigest([k, v]) }.sort digest.update(e) end else raise TypeError, "can't convert #{obj.inspect} into String" end digest.hexdigest end
Generated with the Darkfish Rdoc Generator 2.