Class: Igniter::Extensions::Contracts::Dataflow::WindowFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/igniter/extensions/contracts/dataflow/window_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ WindowFilter

Returns a new instance of WindowFilter.



8
9
10
11
# File 'lib/igniter/extensions/contracts/dataflow/window_filter.rb', line 8

def initialize(options)
  @options = options
  validate!
end

Instance Method Details

#apply(items) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/igniter/extensions/contracts/dataflow/window_filter.rb', line 13

def apply(items)
  return items unless @options

  if @options.key?(:last)
    items.last(@options.fetch(:last))
  else
    cutoff = Time.now - @options.fetch(:seconds)
    field = @options.fetch(:field).to_sym
    items.select { |item| item.fetch(field) >= cutoff }
  end
end