class FortyFacets::FacetFilterDefinition

Public Instance Methods

build_filter(search_instance, param_value) click to toggle source
# File lib/forty_facets/filter/facet_filter_definition.rb, line 153
def build_filter(search_instance, param_value)
  if association
    if association.macro == :belongs_to
      BelongsToFilter.new(self, search_instance, param_value)
    elsif association.macro == :has_many
      HasManyFilter.new(self, search_instance, param_value)
    elsif association.macro == :has_and_belongs_to_many
      HasManyFilter.new(self, search_instance, param_value)
    else
      raise "Unsupported association type: #{association.macro}"
    end
  else
    AttributeFilter.new(self, search_instance, param_value)
  end
end