Class: Jsonapi::QueryBuilder::DynamicSort

Inherits:
BaseSort
  • Object
show all
Defined in:
lib/jsonapi/query_builder/dynamic_sort.rb

Instance Attribute Summary collapse

Attributes inherited from BaseSort

#collection, #direction

Instance Method Summary collapse

Constructor Details

#initialize(collection, dynamic_attribute, direction = :asc) ⇒ DynamicSort

Returns a new instance of DynamicSort.

Parameters:

  • collection (ActiveRecord::Relation)
  • dynamic_attribute, (Symbol)

    which attribute to dynamically sort by

  • direction (Symbol) (defaults to: :asc)

    of the ordering, one of :asc or :desc



13
14
15
16
# File 'lib/jsonapi/query_builder/dynamic_sort.rb', line 13

def initialize(collection, dynamic_attribute, direction = :asc)
  super(collection, direction)
  @dynamic_attribute = dynamic_attribute
end

Instance Attribute Details

#dynamic_attributeObject (readonly)

Returns the value of attribute dynamic_attribute.



8
9
10
# File 'lib/jsonapi/query_builder/dynamic_sort.rb', line 8

def dynamic_attribute
  @dynamic_attribute
end

Instance Method Details

#resultsActiveRecord::Relation

Returns Collection with order applied.

Returns:

  • (ActiveRecord::Relation)

    Collection with order applied

Raises:

  • (NotImplementedError)


19
20
21
# File 'lib/jsonapi/query_builder/dynamic_sort.rb', line 19

def results
  raise NotImplementedError, "#{self.class} should implement #results"
end