Sha256: e441ffcd3a6d28f6e6383921d5b58e81378cd2c30c035bb3dd155638d3470257
Contents?: true
Size: 575 Bytes
Versions: 4
Compression:
Stored size: 575 Bytes
Contents
# frozen_string_literal: true module CheeseCloth class FilterList attr_reader :instance, :filters def initialize(instance) @instance = instance @filters = [] end def add_filter(conditions, block) @filters << Filter.new(conditions, block) end def run_filters(instance) runnable_filters_on(instance).each do |filter| instance.scope = filter.run(instance) end end private def runnable_filters_on(instance) filters.select { |filter| filter.conditions_satisfied?(instance) } end end end
Version data entries
4 entries across 4 versions & 1 rubygems