class TokenChain::Generator
Attributes
anchor_code[R]
codes[R]
Public Class Methods
new(anchor_code, last_code=nil)
click to toggle source
# File lib/token_chain/generator.rb, line 7 def initialize anchor_code, last_code=nil @anchor_code = anchor_code @last_code = last_code @codes = [] end
Public Instance Methods
generate(quantity=1)
click to toggle source
# File lib/token_chain/generator.rb, line 13 def generate quantity=1 codes = make_new_codes quantity quantity > 1 ? codes : codes.last end
sha()
click to toggle source
# File lib/token_chain/generator.rb, line 18 def sha @sha ||= Digest::SHA2.new end
Private Instance Methods
make_new_codes(number)
click to toggle source
# File lib/token_chain/generator.rb, line 24 def make_new_codes number (1..number).inject([]) do |memo, _| part_one = memo.last || @codes.last || @last_code || @anchor_code part_two = @anchor_code memo << sha.base64digest("#{part_one}#{part_two}") end.tap do |new_codes| @codes.concat new_codes end end