Last active
August 29, 2015 14:18
-
-
Save rbmrclo/e4df82f1a8f04b11a325 to your computer and use it in GitHub Desktop.
SHA1Generator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'digest/sha1' | |
# | |
# A wrapper for generating SHA1 hash value | |
# Simply done by concatenating all values using the colon symbol for delimiter. | |
# This algorithm is mostly used by payment gateways. | |
# | |
# Usage: | |
# | |
# SHA1Generator.digest('foo', 'bar', 'fizz', 'buzz') | |
# => "e723e86a6000fc8462142eb4821672de107535c1" # 40 chars | |
# | |
# hash_value = SHA1Generator.new('foo', 'bar', 'fizz', 'buzz') | |
# hash_value.digestible_attributes | |
# => "foo:bar:fizz:buzz" | |
# | |
# hash_value.digest | |
# => "e723e86a6000fc8462142eb4821672de107535c1" # 40 chars | |
# | |
class SHA1Generator | |
def self.digest(*attributes) | |
new(*attributes).digest | |
end | |
def initialize(*attributes) | |
@attrs = attributes | |
end | |
def digestible_attributes | |
@attrs * ":" | |
end | |
def digest | |
Digest::SHA1.hexdigest(digestible_attributes) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment