class VsTokenGenerator::Token
Attributes
group_size[RW]
length[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/vs_token_generator.rb, line 13 def initialize(params = {}) @length = params.fetch(:length, @@length) @group_size = params.fetch(:group_size, @@group_size) end
Public Instance Methods
generate(token=raw_token)
click to toggle source
# File lib/vs_token_generator.rb, line 22 def generate(token=raw_token) pretty_token(token, @group_size) end
raw_token()
click to toggle source
# File lib/vs_token_generator.rb, line 18 def raw_token (1..@length).map { random_char @@charset }.join end
Private Instance Methods
pretty_token(input, group_size)
click to toggle source
# File lib/vs_token_generator.rb, line 27 def pretty_token(input, group_size) return input if group_size < 1 input.split('').each_slice(group_size).map(&:join).join('-') end
random_char(charset)
click to toggle source
# File lib/vs_token_generator.rb, line 32 def random_char(charset) charset[SecureRandom.random_number(charset.size)] end