class Stockboy::Filter
Filters
can be any callable object that returns true or false. This abstract class is a helpful way to define a commonly used filter pattern.
Interface¶ ↑
Filter
subclasses must define a filter
method that returns true or false when called with the record context.
@example
class Bouncer < Stockboy::Filter def initialize(age) @age = age end def filter(input_context, output_context) input_context["RawAge"].empty? or output_context.age < @age end end Stockboy::Filters.register(:bouncer, Bouncer.new(19)) filter :under_age, :bouncer # in job template Stockboy::Filters.register(:check_id, Bouncer) filter :under_age, :bouncer, 19 # in job template
@abstract
Public Instance Methods
call(raw_context, translated_context)
click to toggle source
Return true to capture a filtered record, false to pass it on
@param [SourceRecord] raw_context
Unmapped source fields with Hash-like access field names (e.g. <tt>input["RawField"]</tt>) or raw values on mapped attributes as methods (e.g. <tt>input.email</tt>)
@param [MappedRecord] translated_context
Mapped and translated fields with access to attributes as methods (<tt>output.email</tt>)
@return [Boolean]
# File lib/stockboy/filter.rb, line 44 def call(raw_context, translated_context) return !!filter(raw_context, translated_context) end
Private Instance Methods
filter(raw_context, translated_context)
click to toggle source
@abstract
# File lib/stockboy/filter.rb, line 52 def filter(raw_context, translated_context) raise NoMethodError, "#{self.class}#filter must be implemented" end