class Sequel::SQL::OrderedExpression

Represents a column/expression to order the result set by.

Constants

INVERT_NULLS

Attributes

descending[R]

Whether the expression should order the result set in a descending manner

expression[R]

The expression to order the result set by.

nulls[R]

Whether to sort NULLS FIRST/LAST

Public Class Methods

new(expression, descending = true, opts=OPTS) click to toggle source

Set the expression and descending attributes to the given values. Options:

:nulls

Can be :first/:last for NULLS FIRST/LAST.

# File lib/sequel/sql.rb, line 1659
def initialize(expression, descending = true, opts=OPTS)
  @expression = expression
  @descending = descending
  @nulls = opts[:nulls]
  freeze
end

Public Instance Methods

asc() click to toggle source

Return a copy that is ordered ASC

# File lib/sequel/sql.rb, line 1667
def asc
  OrderedExpression.new(@expression, false, :nulls=>@nulls)
end
desc() click to toggle source

Return a copy that is ordered DESC

# File lib/sequel/sql.rb, line 1672
def desc
  OrderedExpression.new(@expression, true, :nulls=>@nulls)
end
invert() click to toggle source

Return an inverted expression, changing ASC to DESC and NULLS FIRST to NULLS LAST.

# File lib/sequel/sql.rb, line 1677
def invert
  OrderedExpression.new(@expression, !@descending, :nulls=>INVERT_NULLS.fetch(@nulls, @nulls))
end

Private Instance Methods

inspect_args() click to toggle source

OrderedExpression's initializer takes the :nulls information inside a hash, so if a NULL order was given, include a hash with that information.

# File lib/sequel/extensions/eval_inspect.rb, line 172
def inspect_args
  if nulls
    [:expression, :descending, :opts_hash]
  else
    [:expression, :descending]
  end
end
opts_hash() click to toggle source

A hash of null information suitable for passing to the initializer.

# File lib/sequel/extensions/eval_inspect.rb, line 181
def opts_hash
  {:nulls=>nulls} 
end