Method: Flexkey::Generator#generate

Defined in:
lib/flexkey/generator.rb

#generate(n = 1) ⇒ String+

Generates a single key or an array of n keys.

Examples:

fk = Flexkey::Generator.new(format: 'nnn-aaa',
                            char_pool: { 'n' => :numeric, 'a' => :alpha_upper_clear })
fk.generate
fk.generate(10)

Parameters:

  • n (Integer) (defaults to: 1)

    the number of keys to generate

Returns:

  • (String)

    a single key

  • (Array<String>)

    n keys


62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/flexkey/generator.rb', line 62

def generate(n = 1)
  validate_n!(n)

  if n == 1
    generate_one
  elsif n > 1
    keys = []
    new_key = nil

    n.times do
      loop do
        new_key = generate_one
        break unless keys.include?(new_key)
      end

      keys << new_key
    end

    keys
  end
end