class GearedPagination::Order
Constants
- INVALID_DIRECTION
Attributes
attribute[R]
direction[R]
Public Class Methods
new(attribute:, direction: :asc)
click to toggle source
# File lib/geared_pagination/order.rb, line 26 def initialize(attribute:, direction: :asc) @attribute = attribute.to_sym @direction = direction.presence_in(%i[ asc desc ]) || raise(ArgumentError, INVALID_DIRECTION % [ attribute, direction ]) end
wrap(object)
click to toggle source
# File lib/geared_pagination/order.rb, line 12 def wrap(object) case object when Symbol new attribute: object when Hash object.collect { |key, value| new attribute: key, direction: value } when self object else raise ArgumentError, "Invalid orders: expected Symbol, Hash, or GearedPagination::Order, got #{object.inspect}" end end
wrap_many(objects)
click to toggle source
# File lib/geared_pagination/order.rb, line 8 def wrap_many(objects) Array.wrap(objects).flat_map { |object| wrap object } end
Public Instance Methods
==(other)
click to toggle source
# File lib/geared_pagination/order.rb, line 40 def ==(other) other.is_a?(Order) && attribute == other.attribute && direction == other.direction end
asc?()
click to toggle source
# File lib/geared_pagination/order.rb, line 32 def asc? direction == :asc end
desc?()
click to toggle source
# File lib/geared_pagination/order.rb, line 36 def desc? !asc? end