class Streamer::Functors::ListFilter

ListFilter returns items in the list matching the filter parameters

Attributes

list[R]

Public Instance Methods

call() click to toggle source
# File lib/streamer/functors/list_filter.rb, line 6
def call
  @list = payload[options.fetch(:list)]
  reduce_list(options.fetch(:filters))
end
match(item, filters) click to toggle source
# File lib/streamer/functors/list_filter.rb, line 17
def match(item, filters)
  filters.inject(true) do |val, filter|
    val &&= functor(filter[:function], item).call
    val
  end
end
reduce_list(filters) click to toggle source
# File lib/streamer/functors/list_filter.rb, line 11
def reduce_list(filters)
  list.each_with_object([]) do |item, val|
    val << item if match(item, filters)
  end
end