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
#filter ⇒ Object
10 11 12 |
# File 'app/models/linked_rails/collection/filterable.rb', line 10 def filter default_filters.merge(@filter || {}) end |
#unfiltered_collection ⇒ Object
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_fields ⇒ Object
16 17 18 |
# File 'app/models/linked_rails/collection/filterable.rb', line 16 def filter_fields @filter_fields ||= &.map { |key, | filter_field(key, ) }&.select(&:serializable?) end |
#filtered? ⇒ Boolean
20 21 22 |
# File 'app/models/linked_rails/collection/filterable.rb', line 20 def filtered? filter.present? end |
#filters ⇒ Object
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 |
#unfiltered ⇒ Object
37 38 39 |
# File 'app/models/linked_rails/collection/filterable.rb', line 37 def unfiltered filtered? ? unfiltered_collection : self end |