class ArcFurnace::Filter
Public Class Methods
new(source:)
click to toggle source
# File lib/arc-furnace/filter.rb, line 11 def initialize(source:) @source = source @value = nil end
Public Instance Methods
advance()
click to toggle source
# File lib/arc-furnace/filter.rb, line 34 def advance loop do @value = source.row break if value.nil? || filter(value) end end
empty?()
click to toggle source
# File lib/arc-furnace/filter.rb, line 30 def empty? @value.nil? && source.empty? end
filter(row)
click to toggle source
Given a row from the source, tell if it should be passed down to the next node downstream from this node.
This method must return a boolean
# File lib/arc-furnace/filter.rb, line 26 def filter(row) raise "Unimplemented" end
value()
click to toggle source
# File lib/arc-furnace/filter.rb, line 16 def value if @value.nil? && !empty? advance end @value end