Class: Arel::UpdateManager
Instance Method Summary
collapse
#key, #key=, #offset, #order, #take, #where, #wheres=
Constructor Details
#initialize(table = nil) ⇒ UpdateManager
Returns a new instance of UpdateManager.
7
8
9
|
# File 'lib/arel/update_manager.rb', line 7
def initialize(table = nil)
@ast = Nodes::UpdateStatement.new(table)
end
|
Instance Method Details
49
50
51
52
|
# File 'lib/arel/update_manager.rb', line 49
def (value)
@ast. = value
self
end
|
#group(columns) ⇒ Object
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/arel/update_manager.rb', line 33
def group(columns)
columns.each do |column|
column = Nodes::SqlLiteral.new(column) if String === column
column = Nodes::SqlLiteral.new(column.to_s) if Symbol === column
@ast.groups.push Nodes::Group.new column
end
self
end
|
#having(expr) ⇒ Object
44
45
46
47
|
# File 'lib/arel/update_manager.rb', line 44
def having(expr)
@ast.havings << expr
self
end
|
#set(values) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/arel/update_manager.rb', line 18
def set(values)
case values
when String, Nodes::BoundSqlLiteral
@ast.values = [values]
else
@ast.values = values.map { |column, value|
Nodes::Assignment.new(
Nodes::UnqualifiedColumn.new(column),
value
)
}
end
self
end
|
#table(table) ⇒ Object
13
14
15
16
|
# File 'lib/arel/update_manager.rb', line 13
def table(table)
@ast.relation = table
self
end
|