Module: JT::Rails::Tokenizable::Tokenize

Extended by:
ActiveSupport::Concern
Defined in:
lib/tokenize.rb

Instance Method Summary collapse

Instance Method Details

#generate_new_token(field) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/tokenize.rb', line 36

def generate_new_token(field)
  size = self.class.jt_rails_token_fields[field.to_sym].fetch(:size, 32)
  only_digits = self.class.jt_rails_token_fields[field.to_sym].fetch(:only_digits, false)

  self[field.to_sym] = loop do
    random_token = only_digits ? format("%.#{size}d", SecureRandom.random_number(10**size)) : SecureRandom.hex(size)
    break random_token unless self.class.exists?(field => random_token)
  end
end

#jt_rails_generate_tokensObject



30
31
32
33
34
# File 'lib/tokenize.rb', line 30

def jt_rails_generate_tokens
  for field in self.class.jt_rails_token_fields.keys
    generate_new_token(field)
  end
end