module SQB::Ordering

Constants

VALID_ORDERS

Public Instance Methods

no_order!() click to toggle source

Remove all ordering for this query

# File lib/sqb/ordering.rb, line 34
def no_order!
  @orders = []
end
order(column, direction = nil) click to toggle source

Add an order column

@param column [String, Symbol, Hash] @param direction [String] 'ASC' or 'DESC' (default 'ASC') @return [Query]

# File lib/sqb/ordering.rb, line 11
def order(column, direction = nil)
  direction = direction ? direction.to_s.upcase : 'ASC'

  unless VALID_ORDERS.include?(direction)
    raise InvalidOrderDirectionError, "Invalid order direction #{direction}"
  end

  @orders ||= []

  with_table_and_column(column) do |table, column|
    @orders << [escape_and_join(table, column), direction].join(' ')
  end

  self
end
order!(*args) click to toggle source

Add an order replacing all previous ones

# File lib/sqb/ordering.rb, line 28
def order!(*args)
  @orders = []
  order(*args)
end