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