Module: LittleWeasel::Filters::WordFilterValidatable

Included in:
WordFiltersValidatable
Defined in:
lib/LittleWeasel/filters/word_filter_validatable.rb

Overview

This module validates word filter types.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.valid_word_filter?(word_filter:) ⇒ Boolean

You can use your own word filter types as long as they quack correctly; however, you are responsible for the behavior of these required methods/ attributes. It’s probably better to follow the pattern of existing word filter objects (e.g. Filters::EnUs::NumericFilter) and inherit from Filters::WordFilter.

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
# File 'lib/LittleWeasel/filters/word_filter_validatable.rb', line 17

def self.valid_word_filter?(word_filter:)
  word_filter.respond_to?(:filter_on?) &&
    word_filter.respond_to?(:filter_off?) &&
    word_filter.respond_to?(:filter_on) &&
    word_filter.respond_to?(:filter_on=) &&
    word_filter.respond_to?(:filter_match?) &&
    word_filter.class.respond_to?(:filter_match?)
end

.validate(word_filter:) ⇒ Object

Raises:

  • (ArgumentError)


7
8
9
10
# File 'lib/LittleWeasel/filters/word_filter_validatable.rb', line 7

def self.validate(word_filter:)
  raise ArgumentError, "Argument word_filter does not quack right: #{word_filter.class}" \
    unless valid_word_filter?(word_filter: word_filter)
end

Instance Method Details

#validate_word_filter(word_filter:) ⇒ Object



26
27
28
# File 'lib/LittleWeasel/filters/word_filter_validatable.rb', line 26

def validate_word_filter(word_filter:)
  WordFilterValidatable.validate word_filter: word_filter
end