Class: Flexkey::Generator
- Inherits:
-
Object
- Object
- Flexkey::Generator
- Defined in:
- lib/flexkey/generator.rb
Instance Attribute Summary collapse
-
#char_pool ⇒ Hash{ String => Symbol, String }
A pool of available character types specified in the format.
-
#format ⇒ String
The format of the keys to be generated.
-
#n_possible_keys ⇒ Fixnum
readonly
The number of possible keys for a Flexkey instance with given format and character pool.
Instance Method Summary collapse
-
#generate(n = 1) ⇒ String+
Generates a single key or an array of
n
keys. -
#initialize(args = {}) ⇒ Flexkey
constructor
Initializes and validates a new Flexkey key generator.
- #inspect ⇒ Object (also: #to_s)
Constructor Details
permalink #initialize(args = {}) ⇒ Flexkey
Initializes and validates a new Flexkey key generator.
30 31 32 33 34 35 |
# File 'lib/flexkey/generator.rb', line 30 def initialize(args = {}) @format, @char_pool = args[:format], args[:char_pool] validate! set_char_pool calculate_n_possible_keys end |
Instance Attribute Details
permalink #char_pool ⇒ Hash{ String => Symbol, String }
Returns a pool of available character types specified in the format.
10 11 12 |
# File 'lib/flexkey/generator.rb', line 10 def char_pool @char_pool end |
permalink #format ⇒ String
Returns the format of the keys to be generated.
6 7 8 |
# File 'lib/flexkey/generator.rb', line 6 def format @format end |
permalink #n_possible_keys ⇒ Fixnum (readonly)
Returns the number of possible keys for a Flexkey instance with given format and character pool.
14 15 16 |
# File 'lib/flexkey/generator.rb', line 14 def n_possible_keys @n_possible_keys end |
Instance Method Details
permalink #generate(n = 1) ⇒ String+
Generates a single key or an array of 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 |
permalink #inspect ⇒ Object Also known as: to_s
[View source]
84 85 86 87 |
# File 'lib/flexkey/generator.rb', line 84 def inspect %Q{#<#{self.class} @format="#{format}", @char_pool=#{@char_pool}, } + %Q{@n_possible_keys=#{@n_possible_keys}>} end |