Sha256: 9b786b343c2604a0fa5b21abf1a6ee8a6e90830a8e8fd94b7b27792a1e25670e

Contents?: true

Size: 942 Bytes

Versions: 3

Compression:

Stored size: 942 Bytes

Contents

module Avo
  module Filters
    class BaseFilter
      class_attribute :name, default: "Filter"
      class_attribute :component, default: "boolean-filter"
      class_attribute :default, default: nil
      class_attribute :template, default: "avo/base/select_filter"

      def apply_query(request, query, value)
        value.stringify_keys! if value.is_a? Hash

        apply(request, query, value)
      end

      def id
        self.class.name.underscore.tr("/", "_")
      end

      # Get the applied value this filter.
      # If it's not present return the default value.
      def applied_or_default_value(applied_filters)
        # Get the values for this particular filter
        applied_value = applied_filters[self.class.to_s]

        # Return that value if present
        return applied_value unless applied_value.nil?

        # Return that default
        default
      rescue
        default
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
avo-2.4.1 lib/avo/filters/base_filter.rb
avo-2.4.0 lib/avo/filters/base_filter.rb
avo-2.3.1.pre.1 lib/avo/filters/base_filter.rb