1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/lib/arel/factory_methods.rb

50 lines
951 B
Ruby
Raw Normal View History

# frozen_string_literal: true
2018-02-24 01:45:50 -05:00
2018-02-24 02:41:47 -05:00
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
2018-02-24 01:45:50 -05:00
def create_table_alias(relation, name)
Nodes::TableAlias.new(relation, name)
end
2018-02-24 01:45:50 -05:00
def create_join(to, constraint = nil, klass = Nodes::InnerJoin)
2010-12-14 12:43:19 -05:00
klass.new(to, constraint)
end
2010-12-07 17:59:13 -05:00
2018-02-24 01:45:50 -05:00
def create_string_join(to)
create_join to, nil, Nodes::StringJoin
2010-12-07 17:59:13 -05:00
end
2010-12-09 18:42:29 -05:00
2018-02-24 01:45:50 -05:00
def create_and(clauses)
2010-12-09 18:42:29 -05:00
Nodes::And.new clauses
end
2010-12-10 17:45:38 -05:00
2018-02-24 01:45:50 -05:00
def create_on(expr)
2010-12-10 17:45:38 -05:00
Nodes::On.new expr
end
2018-02-24 01:45:50 -05:00
def grouping(expr)
Nodes::Grouping.new expr
end
###
# Create a LOWER() function
2018-02-24 01:45:50 -05:00
def lower(column)
Nodes::NamedFunction.new "LOWER", [Nodes.build_quoted(column)]
end
def coalesce(*exprs)
Nodes::NamedFunction.new "COALESCE", exprs
end
end
end