Class: Squeel::Nodes::Literal

Inherits:
Object
  • Object
show all
Includes:
Aliasing, Operators, PredicateOperators, PredicateMethods
Defined in:
lib/squeel/nodes/literal.rb

Overview

Literal nodes are a container for raw SQL.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Aliasing

#as

Methods included from Operators

#*, #+, #-, #/, #op

Methods included from PredicateOperators

#&, #-@, #|

Constructor Details

#initialize(expr) ⇒ Literal

Returns a new instance of Literal.



16
17
18
# File 'lib/squeel/nodes/literal.rb', line 16

def initialize(expr)
  @expr = expr
end

Instance Attribute Details

#exprObject (readonly)

Returns the value of attribute expr.



14
15
16
# File 'lib/squeel/nodes/literal.rb', line 14

def expr
  @expr
end

Instance Method Details

#ascOrder

Create an ascending Order node with this Literal as its expression

Returns:

  • (Order)

    The new Order node



34
35
36
# File 'lib/squeel/nodes/literal.rb', line 34

def asc
  Order.new self, 1
end

#descOrder

Create a descending Order node with this Literal as its expression

Returns:

  • (Order)

    The new Order node



40
41
42
# File 'lib/squeel/nodes/literal.rb', line 40

def desc
  Order.new self, -1
end

#eql?(other) ⇒ Boolean

Object comparison

Returns:

  • (Boolean)


45
46
47
48
# File 'lib/squeel/nodes/literal.rb', line 45

def eql?(other)
  self.class.eql?(other.class) &&
  self.expr.eql?(other.expr)
end

#hashObject

To support object equality tests



51
52
53
# File 'lib/squeel/nodes/literal.rb', line 51

def hash
  expr.hash
end

#to_sString Also known as: to_str

Returns The Literal’s String equivalent.

Returns:

  • (String)

    The Literal’s String equivalent.



64
65
66
# File 'lib/squeel/nodes/literal.rb', line 64

def to_s
  expr.to_s
end

#to_symNilClass

expand_hash_conditions_for_aggregates assumes our hash keys can be converted to symbols, so this has to be implemented, but it doesn’t really have to do anything useful.

Returns:

  • (NilClass)

    Just to avoid bombing out on expand_hash_conditions_for_aggregates



59
60
61
# File 'lib/squeel/nodes/literal.rb', line 59

def to_sym
  nil
end