1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/lib/arel/factory_methods.rb
Daniel Cadenas 11f929b5c4 Add nodes for boolean constants
This is useful for dynamically created predicates e.g:

expr1 = table.create_false
expr2 = table.create_false

expr1 = create_a_predicate() if some_condition
expr2 = create_another_predicate() if some_other_condition

table.where(expr1.and(expr2))
2011-08-03 20:50:03 -03:00

43 lines
796 B
Ruby

module Arel
###
# 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', [column]
end
end
end