Sha256: 680d4d6a5819856df4acb4a20166acce34e7d25e0266cdaafadbe7542afd6d80
Contents?: true
Size: 855 Bytes
Versions: 1
Compression:
Stored size: 855 Bytes
Contents
module FortyFacets # Base class for the objects representing a specific value for a specific # type of filter. Most FilterDefinitions will have their own Filter subclass # to control values for display and rendering to request parameters. Filter = Struct.new(:filter_definition, :search_instance, :value) do def name filter_definition.options[:name] || filter_definition.model_field end def values @values ||= Array.wrap(value).sort.uniq end def empty? value.nil? || value == '' || value == [] end # generate a search with this filter removed def without search = search_instance return search if empty? new_params = search_instance.params || {} new_params.delete(filter_definition.request_param) search_instance.class.new_unwrapped(new_params) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
forty_facets-0.0.6 | lib/forty_facets/filter.rb |