Module: LinkedRails::Collection::Filterable

Includes:
RDF::Serializers::DataTypeHelper
Included in:
LinkedRails::Collection
Defined in:
app/models/linked_rails/collection/filterable.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#filterObject



10
11
12
# File 'app/models/linked_rails/collection/filterable.rb', line 10

def filter
  default_filters.merge(@filter || {})
end

#unfiltered_collectionObject



41
42
43
# File 'app/models/linked_rails/collection/filterable.rb', line 41

def unfiltered_collection
  @unfiltered_collection ||= new_child(filter: {})
end

Instance Method Details

#filter_fieldsObject



16
17
18
# File 'app/models/linked_rails/collection/filterable.rb', line 16

def filter_fields
  @filter_fields ||= filter_options&.map { |key, options| filter_field(key, options) }&.select(&:serializable?)
end

#filtered?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'app/models/linked_rails/collection/filterable.rb', line 20

def filtered?
  filter.present?
end

#filtersObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/models/linked_rails/collection/filterable.rb', line 24

def filters
  @filters ||= filter.map do |key, values|
    predicate = key.is_a?(RDF::URI) ? key : association_class.predicate_for_key(key)

    LinkedRails.collection_filter_class.new(
      collection: self,
      default_filter: !@filter&.key?(predicate),
      key: predicate,
      value: values.map { |val| sanitized_filter_value(predicate, val) }
    )
  end
end

#unfilteredObject



37
38
39
# File 'app/models/linked_rails/collection/filterable.rb', line 37

def unfiltered
  filtered? ? unfiltered_collection : self
end