Class: Sequel::SQL::OrderedExpression
- Inherits:
-
Expression
- Object
- Expression
- Sequel::SQL::OrderedExpression
- Defined in:
- lib/sequel/sql.rb,
lib/sequel/extensions/eval_inspect.rb
Overview
Represents a column/expression to order the result set by.
Constant Summary collapse
- INVERT_NULLS =
{:first=>:last, :last=>:first}.freeze
Instance Attribute Summary collapse
-
#descending ⇒ Object
readonly
Whether the expression should order the result set in a descending manner.
-
#expression ⇒ Object
readonly
The expression to order the result set by.
-
#nulls ⇒ Object
readonly
Whether to sort NULLS FIRST/LAST.
Instance Method Summary collapse
-
#asc ⇒ Object
Return a copy that is ordered ASC.
-
#desc ⇒ Object
Return a copy that is ordered DESC.
-
#initialize(expression, descending = true, opts = OPTS) ⇒ OrderedExpression
constructor
Set the expression and descending attributes to the given values.
-
#invert ⇒ Object
Return an inverted expression, changing ASC to DESC and NULLS FIRST to NULLS LAST.
Methods inherited from Expression
#==, attr_reader, #eql?, #hash, inherited, #inspect, #lit, #sql_literal
Constructor Details
#initialize(expression, descending = true, opts = OPTS) ⇒ OrderedExpression
Set the expression and descending attributes to the given values. Options:
- :nulls
-
Can be :first/:last for NULLS FIRST/LAST.
1669 1670 1671 1672 1673 1674 |
# File 'lib/sequel/sql.rb', line 1669 def initialize(expression, descending = true, opts=OPTS) @expression = expression @descending = descending @nulls = opts[:nulls] freeze end |
Instance Attribute Details
#descending ⇒ Object (readonly)
Whether the expression should order the result set in a descending manner
1660 1661 1662 |
# File 'lib/sequel/sql.rb', line 1660 def descending @descending end |
#expression ⇒ Object (readonly)
The expression to order the result set by.
1657 1658 1659 |
# File 'lib/sequel/sql.rb', line 1657 def expression @expression end |
#nulls ⇒ Object (readonly)
Whether to sort NULLS FIRST/LAST
1663 1664 1665 |
# File 'lib/sequel/sql.rb', line 1663 def nulls @nulls end |
Instance Method Details
#asc ⇒ Object
Return a copy that is ordered ASC
1677 1678 1679 |
# File 'lib/sequel/sql.rb', line 1677 def asc OrderedExpression.new(@expression, false, :nulls=>@nulls) end |
#desc ⇒ Object
Return a copy that is ordered DESC
1682 1683 1684 |
# File 'lib/sequel/sql.rb', line 1682 def desc OrderedExpression.new(@expression, true, :nulls=>@nulls) end |
#invert ⇒ Object
Return an inverted expression, changing ASC to DESC and NULLS FIRST to NULLS LAST.
1687 1688 1689 |
# File 'lib/sequel/sql.rb', line 1687 def invert OrderedExpression.new(@expression, !@descending, :nulls=>INVERT_NULLS.fetch(@nulls, @nulls)) end |