blob: 83ec23e403f35669ce6e74caee5810788b94b8ff (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# frozen_string_literal: true
module Arel # :nodoc: all
###
# Methods for creating various nodes
module FactoryMethods
def create_true
Arel::Nodes::True.new
end
def create_false
Arel::Nodes::False.new
end
def create_table_alias(relation, name)
Nodes::TableAlias.new(relation, name)
end
def create_join(to, constraint = nil, klass = Nodes::InnerJoin)
klass.new(to, constraint)
end
def create_string_join(to)
create_join to, nil, Nodes::StringJoin
end
def create_and(clauses)
Nodes::And.new clauses
end
def create_on(expr)
Nodes::On.new expr
end
def grouping(expr)
Nodes::Grouping.new expr
end
###
# Create a LOWER() function
def lower(column)
Nodes::NamedFunction.new "LOWER", [Nodes.build_quoted(column)]
end
def coalesce(*exprs)
Nodes::NamedFunction.new "COALESCE", exprs
end
end
end
|