Class: PasswordUtil::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/password_util/config.rb

Defined Under Namespace

Classes: ConfigurationError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Config

Returns a new instance of Config.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/password_util/config.rb', line 19

def initialize(params)
  @upper_letters = params.fetch(:upper_letters, CharacterSets::UPPER_LETTERS)
  @lower_letters = params.fetch(:lower_letters, CharacterSets::LOWER_LETTERS)
  @numbers = params.fetch(:numbers, CharacterSets::NUMBERS)
  @symbols = params.fetch(:symbols, CharacterSets::SYMBOLS)

  @password_length = params.fetch(:password_length, DEFAULT_PASSWORD_LENGTH)

  @has_lower_letters = params.fetch(:has_lower_letters, DEFAULT_HAS_LOWER_LETTERS)
  @min_lower_letters = params.fetch(:min_lower_letters, DEFAULT_MIN_LOWER_LETTERS)

  @has_upper_letters = params.fetch(:has_upper_letters, DEFAULT_HAS_UPPER_LETTERS)
  @min_upper_letters = params.fetch(:min_upper_letters, DEFAULT_MIN_UPPER_LETTERS)

  @has_numbers = params.fetch(:has_numbers, DEFAULT_HAS_NUMBERS)
  @min_numbers = params.fetch(:min_numbers, DEFAULT_MIN_NUMBERS)

  @has_symbols = params.fetch(:has_symbols, DEFAULT_HAS_SYMBOLS)
  @min_symbols = params.fetch(:min_symbols, DEFAULT_MIN_SYMBOLS)
end

Instance Attribute Details

#has_lower_lettersObject

Returns the value of attribute has_lower_letters.



17
18
19
# File 'lib/password_util/config.rb', line 17

def has_lower_letters
  @has_lower_letters
end

#has_numbersObject

Returns the value of attribute has_numbers.



17
18
19
# File 'lib/password_util/config.rb', line 17

def has_numbers
  @has_numbers
end

#has_symbolsObject

Returns the value of attribute has_symbols.



17
18
19
# File 'lib/password_util/config.rb', line 17

def has_symbols
  @has_symbols
end

#has_upper_lettersObject

Returns the value of attribute has_upper_letters.



17
18
19
# File 'lib/password_util/config.rb', line 17

def has_upper_letters
  @has_upper_letters
end

#lower_lettersObject

Returns the value of attribute lower_letters.



17
18
19
# File 'lib/password_util/config.rb', line 17

def lower_letters
  @lower_letters
end

#min_lower_lettersObject

Returns the value of attribute min_lower_letters.



17
18
19
# File 'lib/password_util/config.rb', line 17

def min_lower_letters
  @min_lower_letters
end

#min_numbersObject

Returns the value of attribute min_numbers.



17
18
19
# File 'lib/password_util/config.rb', line 17

def min_numbers
  @min_numbers
end

#min_symbolsObject

Returns the value of attribute min_symbols.



17
18
19
# File 'lib/password_util/config.rb', line 17

def min_symbols
  @min_symbols
end

#min_upper_lettersObject

Returns the value of attribute min_upper_letters.



17
18
19
# File 'lib/password_util/config.rb', line 17

def min_upper_letters
  @min_upper_letters
end

#numbersObject

Returns the value of attribute numbers.



17
18
19
# File 'lib/password_util/config.rb', line 17

def numbers
  @numbers
end

#password_lengthObject

Returns the value of attribute password_length.



17
18
19
# File 'lib/password_util/config.rb', line 17

def password_length
  @password_length
end

#symbolsObject

Returns the value of attribute symbols.



17
18
19
# File 'lib/password_util/config.rb', line 17

def symbols
  @symbols
end

#upper_lettersObject

Returns the value of attribute upper_letters.



17
18
19
# File 'lib/password_util/config.rb', line 17

def upper_letters
  @upper_letters
end

Instance Method Details

#validate!Object

Raises:



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/password_util/config.rb', line 40

def validate!
  boolean_classes = [TrueClass, FalseClass]

  raise ConfigurationError, 'password_length: expected Integer' unless password_length.is_a?(Integer)
  raise ConfigurationError, 'has_lower_letters: expected Boolean' unless boolean_classes.include?(has_lower_letters.class)
  raise ConfigurationError, 'min_lower_letters: expected Integer' unless min_lower_letters.is_a?(Integer)
  raise ConfigurationError, 'has_upper_letters: expected Boolean' unless boolean_classes.include?(has_upper_letters.class)
  raise ConfigurationError, 'min_upper_letters: expected Integer' unless min_upper_letters.is_a?(Integer)
  raise ConfigurationError, 'has_numbers: expected Boolean' unless boolean_classes.include?(has_numbers.class)
  raise ConfigurationError, 'min_numbers: expected Integer' unless min_numbers.is_a?(Integer)
  raise ConfigurationError, 'has_symbols: expected Boolean' unless boolean_classes.include?(has_symbols.class)
  raise ConfigurationError, 'min_symbols: expected Integer' unless min_symbols.is_a?(Integer)

  raise ConfigurationError, 'No usable character set.' unless has_lower_letters || has_upper_letters || has_numbers || has_symbols
end