Class: PassForge::Pattern
- Inherits:
-
Object
- Object
- PassForge::Pattern
- Defined in:
- lib/passforge/pattern.rb
Overview
Pattern-based password generator Generate passwords based on custom patterns
Class Method Summary collapse
-
.generate(pattern) ⇒ String
Generate password from pattern.
Class Method Details
.generate(pattern) ⇒ String
Generate password from pattern
Pattern characters:
-
C = uppercase letter
-
c = lowercase letter
-
v = lowercase vowel
-
V = uppercase vowel
-
9 = digit
-
! = symbol
-
Any other character = literal
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/passforge/pattern.rb', line 27 def self.generate(pattern) raise ArgumentError, "Pattern cannot be empty" if pattern.nil? || pattern.empty? result = [] pattern.each_char do |char| result << case char when 'C' Charsets::UPPER_CASE.sample when 'c' Charsets::LOWER_CASE.sample when 'v' Pronounceable::VOWELS.sample when 'V' Pronounceable::VOWELS.sample.upcase when '9' Charsets::NUMBERS.sample when '!' Charsets::SYMBOLS.sample else char # Literal character end end result.join end |