Module: TokenGenerator

Extended by:
TokenGenerator
Included in:
TokenGenerator
Defined in:
lib/token_generator.rb,
lib/token_generator/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#charsetObject



23
24
25
# File 'lib/token_generator.rb', line 23

def charset
  @charset ||= %w{2 3 4 6 7 9 A C D E F G H J K M N P Q R T V W X Y Z}
end

#group_sizeObject



27
28
29
# File 'lib/token_generator.rb', line 27

def group_size
  @group_size ||= 5
end

#lengthObject



31
32
33
# File 'lib/token_generator.rb', line 31

def length
  @length ||= 20
end

Instance Method Details

#hyphenize(input, group_size = self.group_size) ⇒ Object



12
13
14
15
# File 'lib/token_generator.rb', line 12

def hyphenize(input, group_size = self.group_size)
  return input if group_size < 1
  input.split('').each_slice(group_size).map(&:join).join('-')
end

#random_charObject



17
18
19
# File 'lib/token_generator.rb', line 17

def random_char
  charset[SecureRandom.random_number(charset.size)]
end

#token(length = self.length, group_size = self.group_size) ⇒ Object



7
8
9
10
# File 'lib/token_generator.rb', line 7

def token(length = self.length, group_size = self.group_size)
  token = (1..length).map{ random_char }.join
  hyphenize(token, group_size)
end