class PasswordKun
instance to configure password options
Public Class Methods
new(options = {})
click to toggle source
# File lib/password_kun.rb, line 18 def initialize(options = {}) @length = options[:length] || (8..16) @kb_layout = options[:kb_layout] || KB.standard @has_number = options[:has_number] || true @has_layout = options[:has_layout] || true @has_uppercase = options[:has_uppercase] || false @has_word = options[:has_word] || true end
Public Instance Methods
make_password(amount = 4)
click to toggle source
# File lib/password_kun.rb, line 27 def make_password(amount = 4) Array.new(amount).map do process_password.shuffle.join('-') end end
Private Instance Methods
process_layout(left_len, pw_que)
click to toggle source
# File lib/password_kun.rb, line 69 def process_layout(left_len, pw_que) pw_que << Pattern.layout(left_len, @kb_layout) end
process_number(left_len, pw_que)
click to toggle source
# File lib/password_kun.rb, line 61 def process_number(left_len, pw_que) number_len = rand(2..left_len - 3) number_p = Pattern.number(number_len) left_len -= number_p.length pw_que << number_p [left_len, pw_que] end
process_password()
click to toggle source
# File lib/password_kun.rb, line 35 def process_password left_len = rand(@length) if @has_word process_with_word(left_len, []) else process_without_word(left_len, []) end end
process_with_word(left_len, pw_que)
click to toggle source
# File lib/password_kun.rb, line 44 def process_with_word(left_len, pw_que) word_p = Pattern.word(WORD_SRC, FIND_WORD_PATTERN) loop do break if word_p.length <= left_len - 6 word_p = Pattern.word(WORD_SRC, FIND_WORD_PATTERN) end pw_que << word_p left_len -= word_p.length left_len, pw_que = process_number(left_len, pw_que) if @has_number pw_que = process_layout(left_len, pw_que) if @has_layout pw_que end
process_without_word()
click to toggle source
# File lib/password_kun.rb, line 58 def process_without_word end