Module: LittleWeasel::Preprocessors::PreprocessedWordsValidatable

Included in:
WordResults
Defined in:
lib/LittleWeasel/preprocessors/preprocessed_words_validatable.rb

Overview

This module provides methods to validate preprocessed words types. rubocop: disable Layout/LineLength

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.validate_prepreprocessed_words(preprocessed_words:) ⇒ Object

Raises:

  • (ArgumentError)


12
13
14
15
16
17
18
19
# File 'lib/LittleWeasel/preprocessors/preprocessed_words_validatable.rb', line 12

def validate_prepreprocessed_words(preprocessed_words:)
  raise ArgumentError, validation_error_message(object: preprocessed_words, respond_to: :original_word) unless preprocessed_words.respond_to? :original_word
  raise ArgumentError, validation_error_message(object: preprocessed_words, respond_to: :preprocessed_words) unless preprocessed_words.respond_to? :preprocessed_words

  preprocessed_words&.preprocessed_words&.each do |preprocessed_word|
    PreprocessedWordValidatable.validate_prepreprocessed_word preprocessed_word: preprocessed_word
  end
end

.validation_error_message(object:, respond_to:) ⇒ Object



21
22
23
# File 'lib/LittleWeasel/preprocessors/preprocessed_words_validatable.rb', line 21

def validation_error_message(object:, respond_to:)
  "Argument preprocessed_words does not respond to: #{object.class}##{respond_to}"
end

Instance Method Details

#validate_prepreprocessed_words(preprocessed_words:) ⇒ Object (private)



12
13
14
15
16
17
18
19
# File 'lib/LittleWeasel/preprocessors/preprocessed_words_validatable.rb', line 12

def validate_prepreprocessed_words(preprocessed_words:)
  raise ArgumentError, validation_error_message(object: preprocessed_words, respond_to: :original_word) unless preprocessed_words.respond_to? :original_word
  raise ArgumentError, validation_error_message(object: preprocessed_words, respond_to: :preprocessed_words) unless preprocessed_words.respond_to? :preprocessed_words

  preprocessed_words&.preprocessed_words&.each do |preprocessed_word|
    PreprocessedWordValidatable.validate_prepreprocessed_word preprocessed_word: preprocessed_word
  end
end

#validation_error_message(object:, respond_to:) ⇒ Object (private)



21
22
23
# File 'lib/LittleWeasel/preprocessors/preprocessed_words_validatable.rb', line 21

def validation_error_message(object:, respond_to:)
  "Argument preprocessed_words does not respond to: #{object.class}##{respond_to}"
end