class Speckle::List::Builder
Public Class Methods
new()
click to toggle source
# File lib/speckle/list/builder.rb, line 4 def initialize @sources = [] @filters = [] @filtered = nil end
Public Instance Methods
add_filter(filter)
click to toggle source
# File lib/speckle/list/builder.rb, line 14 def add_filter(filter) @filters << filter end
add_source(source)
click to toggle source
# File lib/speckle/list/builder.rb, line 10 def add_source(source) @sources << source end
build()
click to toggle source
# File lib/speckle/list/builder.rb, line 37 def build rebuild if @filtered.nil? @filtered end
filter_list(list, filter)
click to toggle source
# File lib/speckle/list/builder.rb, line 18 def filter_list(list, filter) filtered = [] list.each do |item| result = filter.run(item) filtered.concat(result) end filtered end
rebuild()
click to toggle source
# File lib/speckle/list/builder.rb, line 28 def rebuild filtered = @sources @filters.each do |filter| filtered = filter_list(filtered, filter) end @filtered = filtered end