Class: HasToken::TokenGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/da-has_token/token_generator.rb

Defined Under Namespace

Classes: NoMoreTokens

Constant Summary collapse

MAX_TRIES =
1000

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ TokenGenerator

Returns a new instance of TokenGenerator.



7
8
9
10
11
# File 'lib/da-has_token/token_generator.rb', line 7

def initialize(options = {})
  defaults = {:size => 10, :chars => "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0987654321"}
  options = defaults.merge(options)
  @chars, @size = options[:chars], options[:size]
end

Instance Method Details

#before_create(record) ⇒ Object

Raises:



19
20
21
22
23
24
25
# File 'lib/da-has_token/token_generator.rb', line 19

def before_create(record)
  MAX_TRIES.times do
    return if !record.token.nil? && record.class.find_by_token(record.token) == nil
    record.token = new_token
  end
  raise NoMoreTokens
end

#new_tokenObject



13
14
15
16
17
# File 'lib/da-has_token/token_generator.rb', line 13

def new_token
  token = ""
  @size.times { token << @chars[rand(@chars.length), 1] }
  token
end