Module: OrderQuery::Direction

Extended by:
Direction
Included in:
Direction
Defined in:
lib/order_query/direction.rb

Overview

Responsible for handling :asc and :desc

Constant Summary collapse

DIRECTIONS =
[:asc, :desc].freeze

Instance Method Summary collapse

Instance Method Details

#allObject



8
9
10
# File 'lib/order_query/direction.rb', line 8

def all
  DIRECTIONS
end

#parse!(direction) ⇒ :asc, :desc

Parameters:

  • direction (:asc, :desc, String)

Returns:

  • (:asc, :desc)

Raises:

  • (ArgumentError)


21
22
23
24
25
26
# File 'lib/order_query/direction.rb', line 21

def parse!(direction)
  if all.include?(direction)
    direction
  end or
      raise ArgumentError.new("sort direction must be in #{all.map(&:inspect).join(', ')}, is #{direction.inspect}")
end

#reverse(direction) ⇒ :asc, :desc

Parameters:

  • direction (:asc, :desc)

Returns:

  • (:asc, :desc)


14
15
16
# File 'lib/order_query/direction.rb', line 14

def reverse(direction)
  all[(all.index(direction) + 1) % 2].to_sym
end