module LittleWeasel::Filters::WordFilterValidatable

This module validates word filter types.

Public Class Methods

valid_word_filter?(word_filter:) click to toggle source

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.

# 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:) click to toggle source
# 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

Public Instance Methods

validate_word_filter(word_filter:) click to toggle source
# File lib/LittleWeasel/filters/word_filter_validatable.rb, line 26
def validate_word_filter(word_filter:)
  WordFilterValidatable.validate word_filter: word_filter
end