aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel')
-rw-r--r--lib/arel/crud.rb4
-rw-r--r--lib/arel/delete_manager.rb8
-rw-r--r--lib/arel/insert_manager.rb16
-rw-r--r--lib/arel/select_manager.rb20
-rw-r--r--lib/arel/tree_manager.rb7
-rw-r--r--lib/arel/update_manager.rb16
6 files changed, 36 insertions, 35 deletions
diff --git a/lib/arel/crud.rb b/lib/arel/crud.rb
index 640189fbe9..b3199e6d38 100644
--- a/lib/arel/crud.rb
+++ b/lib/arel/crud.rb
@@ -13,8 +13,8 @@ module Arel
end
um.table relation
um.set values
- um.take @head.limit
- um.order(*@head.orders)
+ um.take @ast.limit
+ um.order(*@ast.orders)
um.wheres = @ctx.wheres
@engine.connection.update um.to_sql, 'AREL'
diff --git a/lib/arel/delete_manager.rb b/lib/arel/delete_manager.rb
index 4759f116f1..3aab248c23 100644
--- a/lib/arel/delete_manager.rb
+++ b/lib/arel/delete_manager.rb
@@ -2,21 +2,21 @@ module Arel
class DeleteManager < Arel::TreeManager
def initialize engine
super
- @head = Nodes::DeleteStatement.new
+ @ast = Nodes::DeleteStatement.new
end
def from relation
- @head.relation = relation
+ @ast.relation = relation
self
end
def where expression
- @head.wheres << expression
+ @ast.wheres << expression
self
end
def wheres= list
- @head.wheres = list
+ @ast.wheres = list
end
end
end
diff --git a/lib/arel/insert_manager.rb b/lib/arel/insert_manager.rb
index 1759475542..f62f36369b 100644
--- a/lib/arel/insert_manager.rb
+++ b/lib/arel/insert_manager.rb
@@ -2,32 +2,32 @@ module Arel
class InsertManager < Arel::TreeManager
def initialize engine
super
- @head = Nodes::InsertStatement.new
+ @ast = Nodes::InsertStatement.new
end
def into table
- @head.relation = table
+ @ast.relation = table
self
end
- def columns; @head.columns end
- def values= val; @head.values = val; end
+ def columns; @ast.columns end
+ def values= val; @ast.values = val; end
def insert fields
return if fields.empty?
if String === fields
- @head.values = SqlLiteral.new(fields)
+ @ast.values = SqlLiteral.new(fields)
else
- @head.relation ||= fields.first.first.relation
+ @ast.relation ||= fields.first.first.relation
values = []
fields.each do |column, value|
- @head.columns << column
+ @ast.columns << column
values << value
end
- @head.values = Nodes::Values.new values, @head.columns
+ @ast.values = Nodes::Values.new values, @ast.columns
end
end
end
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb
index 7c3c67b477..f2520f38d7 100644
--- a/lib/arel/select_manager.rb
+++ b/lib/arel/select_manager.rb
@@ -4,13 +4,13 @@ module Arel
def initialize engine, table = nil
super(engine)
- @head = Nodes::SelectStatement.new
- @ctx = @head.cores.last
+ @ast = Nodes::SelectStatement.new
+ @ctx = @ast.cores.last
from table
end
def taken
- @head.limit
+ @ast.limit
end
def constraints
@@ -18,7 +18,7 @@ module Arel
end
def skip amount
- @head.offset = Nodes::Offset.new(amount)
+ @ast.offset = Nodes::Offset.new(amount)
self
end
@@ -31,12 +31,12 @@ module Arel
def lock locking = true
# FIXME: do we even need to store this? If locking is +false+ shouldn't
# we just remove the node from the AST?
- @head.lock = Nodes::Lock.new
+ @ast.lock = Nodes::Lock.new
self
end
def locked
- @head.lock
+ @ast.lock
end
def on *exprs
@@ -108,14 +108,14 @@ module Arel
def order *expr
# FIXME: We SHOULD NOT be converting these to SqlLiteral automatically
- @head.orders.concat expr.map { |x|
+ @ast.orders.concat expr.map { |x|
String === x || Symbol === x ? Nodes::SqlLiteral.new(x.to_s) : x
}
self
end
def orders
- @head.orders
+ @ast.orders
end
def wheres
@@ -130,7 +130,7 @@ module Arel
end
def take limit
- @head.limit = limit
+ @ast.limit = limit
self
end
@@ -142,7 +142,7 @@ module Arel
end
def order_clauses
- Visitors::OrderClauses.new(@engine).accept(@head).map { |x|
+ Visitors::OrderClauses.new(@engine).accept(@ast).map { |x|
Nodes::SqlLiteral.new x
}
end
diff --git a/lib/arel/tree_manager.rb b/lib/arel/tree_manager.rb
index 077458fe18..ca87def8d6 100644
--- a/lib/arel/tree_manager.rb
+++ b/lib/arel/tree_manager.rb
@@ -4,6 +4,7 @@ module Arel
include Arel::Relation
attr_accessor :visitor
+ attr_reader :ast
def initialize engine
@engine = engine
@@ -11,16 +12,16 @@ module Arel
end
def to_dot
- Visitors::Dot.new.accept @head
+ Visitors::Dot.new.accept @ast
end
def to_sql
- @visitor.accept @head
+ @visitor.accept @ast
end
def initialize_copy other
super
- @head = @head.clone
+ @ast = @ast.clone
end
end
end
diff --git a/lib/arel/update_manager.rb b/lib/arel/update_manager.rb
index 3f6a483751..c0fb4fbd5f 100644
--- a/lib/arel/update_manager.rb
+++ b/lib/arel/update_manager.rb
@@ -2,40 +2,40 @@ module Arel
class UpdateManager < Arel::TreeManager
def initialize engine
super
- @head = Nodes::UpdateStatement.new
+ @ast = Nodes::UpdateStatement.new
end
def take limit
- @head.limit = limit
+ @ast.limit = limit
self
end
def order *expr
- @head.orders = expr
+ @ast.orders = expr
self
end
###
# UPDATE +table+
def table table
- @head.relation = table
+ @ast.relation = table
self
end
def wheres= exprs
- @head.wheres = exprs
+ @ast.wheres = exprs
end
def where expr
- @head.wheres << expr
+ @ast.wheres << expr
self
end
def set values
if String === values
- @head.values = [values]
+ @ast.values = [values]
else
- @head.values = values.map { |column,value|
+ @ast.values = values.map { |column,value|
Nodes::Assignment.new(
Nodes::UnqualifiedColumn.new(column),
value