Sha256: eb07db67dc0d344a651289587149dc062f265e22111e9d1d42ee53c7624c555e

Contents?: true

Size: 967 Bytes

Versions: 9

Compression:

Stored size: 967 Bytes

Contents

# frozen_string_literal: true

module Decidim
  #
  # This class handles all logic regarding registering filters
  #
  class AdminFilter
    attr_accessor :filters, :dynamically_translated_filters, :filters_with_values

    def initialize(name)
      @name = name
      @filters = []
      @dynamically_translated_filters = []
      @filters_with_values = {}
    end

    def add_filters(*filters)
      @filters += filters
    end

    def add_dynamically_translated_filters(*filters)
      @dynamically_translated_filters += filters
    end

    def add_filters_with_values(**items)
      @filters_with_values.merge!(items)
    end

    def build_for(context)
      raise "Filter #{@name} is not registered" if registry.blank?

      registry.configurations.each do |configuration|
        context.instance_exec(self, &configuration)
      end
      self
    end

    private

    def registry
      @registry ||= AdminFiltersRegistry.find(@name)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc2 lib/decidim/admin_filter.rb
decidim-core-0.30.0.rc1 lib/decidim/admin_filter.rb
decidim-core-0.29.2 lib/decidim/admin_filter.rb
decidim-core-0.29.1 lib/decidim/admin_filter.rb
decidim-core-0.29.0 lib/decidim/admin_filter.rb
decidim-core-0.29.0.rc4 lib/decidim/admin_filter.rb
decidim-core-0.29.0.rc3 lib/decidim/admin_filter.rb
decidim-core-0.29.0.rc2 lib/decidim/admin_filter.rb
decidim-core-0.29.0.rc1 lib/decidim/admin_filter.rb