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
#default_filters ⇒ Object
10 11 12 13 |
# File 'app/models/linked_rails/collection/filterable.rb', line 10 def default_filters opts = @default_filters || association_class.try(:default_filters) || {} opts.respond_to?(:call) ? opts.call(parent) : opts end |
#filter ⇒ Object
15 16 17 |
# File 'app/models/linked_rails/collection/filterable.rb', line 15 def filter default_filters.merge(@filter || {}) end |
#unfiltered_collection ⇒ Object
46 47 48 |
# File 'app/models/linked_rails/collection/filterable.rb', line 46 def unfiltered_collection @unfiltered_collection ||= new_child(filter: {}) end |
Instance Method Details
#filter_fields ⇒ Object
21 22 23 |
# File 'app/models/linked_rails/collection/filterable.rb', line 21 def filter_fields @filter_fields ||= &.map { |key, | filter_field(key, ) } end |
#filtered? ⇒ Boolean
25 26 27 |
# File 'app/models/linked_rails/collection/filterable.rb', line 25 def filtered? filter.present? end |
#filters ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/models/linked_rails/collection/filterable.rb', line 29 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
42 43 44 |
# File 'app/models/linked_rails/collection/filterable.rb', line 42 def unfiltered filtered? ? unfiltered_collection : self end |