Class: Jsonapi::QueryBuilder::Mixins::Sort::Dynamic
- Inherits:
-
Object
- Object
- Jsonapi::QueryBuilder::Mixins::Sort::Dynamic
- Defined in:
- lib/jsonapi/query_builder/mixins/sort/dynamic.rb
Instance Attribute Summary collapse
-
#attribute_prefix ⇒ Object
readonly
Returns the value of attribute attribute_prefix.
-
#sort ⇒ Object
readonly
Returns the value of attribute sort.
Instance Method Summary collapse
-
#initialize(attribute_prefix, sort) ⇒ Dynamic
constructor
A new instance of Dynamic.
- #matches?(sort_attribute) ⇒ Boolean
- #results(collection, sort_param) ⇒ Object
Constructor Details
#initialize(attribute_prefix, sort) ⇒ Dynamic
Returns a new instance of Dynamic.
10 11 12 13 |
# File 'lib/jsonapi/query_builder/mixins/sort/dynamic.rb', line 10 def initialize(attribute_prefix, sort) @attribute_prefix = attribute_prefix.to_s @sort = sort end |
Instance Attribute Details
#attribute_prefix ⇒ Object (readonly)
Returns the value of attribute attribute_prefix.
8 9 10 |
# File 'lib/jsonapi/query_builder/mixins/sort/dynamic.rb', line 8 def attribute_prefix @attribute_prefix end |
#sort ⇒ Object (readonly)
Returns the value of attribute sort.
8 9 10 |
# File 'lib/jsonapi/query_builder/mixins/sort/dynamic.rb', line 8 def sort @sort end |
Instance Method Details
#matches?(sort_attribute) ⇒ Boolean
15 16 17 |
# File 'lib/jsonapi/query_builder/mixins/sort/dynamic.rb', line 15 def matches?(sort_attribute) sort_attribute.to_s.start_with?(attribute_prefix) end |
#results(collection, sort_param) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/jsonapi/query_builder/mixins/sort/dynamic.rb', line 19 def results(collection, sort_param) dynamic_attribute = sort_param.attribute.delete_prefix(attribute_prefix) if sort.respond_to?(:call) sort.call(collection, dynamic_attribute, sort_param.direction) else sort.new(collection, dynamic_attribute, sort_param.direction).results end end |