diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-08-19 10:38:07 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-08-19 10:38:07 -0700 |
commit | 3283adc6d0edcc873256c78842f8ddd233577d08 (patch) | |
tree | a92d64c67ea987f65a465dbac97195cde4fbc820 /lib/arel/nodes | |
parent | 6451188abf647d6aa855d22db8d2d62a2b2c4542 (diff) | |
parent | 06c92a8557f5171704a121d0f4412e4c1e9a9c2b (diff) | |
download | rails-3283adc6d0edcc873256c78842f8ddd233577d08.tar.gz rails-3283adc6d0edcc873256c78842f8ddd233577d08.tar.bz2 rails-3283adc6d0edcc873256c78842f8ddd233577d08.zip |
Merge branch 'v1' of github.com:flavorjones/arel into v1
* 'v1' of github.com:flavorjones/arel:
DeleteStatement deep copy
cleaning up describe/it block names
SelectCore deep copies attributes
Statement nodes deep-copy AST nodes
TreeManager classes deep-copy their statements.
Diffstat (limited to 'lib/arel/nodes')
-rw-r--r-- | lib/arel/nodes/delete_statement.rb | 5 | ||||
-rw-r--r-- | lib/arel/nodes/insert_statement.rb | 6 | ||||
-rw-r--r-- | lib/arel/nodes/select_core.rb | 7 | ||||
-rw-r--r-- | lib/arel/nodes/select_statement.rb | 5 | ||||
-rw-r--r-- | lib/arel/nodes/update_statement.rb | 6 |
5 files changed, 29 insertions, 0 deletions
diff --git a/lib/arel/nodes/delete_statement.rb b/lib/arel/nodes/delete_statement.rb index 54bf513c2b..b65177af05 100644 --- a/lib/arel/nodes/delete_statement.rb +++ b/lib/arel/nodes/delete_statement.rb @@ -7,6 +7,11 @@ module Arel @from = nil @wheres = [] end + + def initialize_copy other + super + @wheres = @wheres.map { |o| o.clone } + end end end end diff --git a/lib/arel/nodes/insert_statement.rb b/lib/arel/nodes/insert_statement.rb index ed601aa841..8c6e1234d0 100644 --- a/lib/arel/nodes/insert_statement.rb +++ b/lib/arel/nodes/insert_statement.rb @@ -8,6 +8,12 @@ module Arel @columns = [] @values = [] end + + def initialize_copy other + super + @columns = @columns.map { |o| o.clone } + @values = @values.map { |o| o.clone } + end end end end diff --git a/lib/arel/nodes/select_core.rb b/lib/arel/nodes/select_core.rb index 39145de697..7ebdab315d 100644 --- a/lib/arel/nodes/select_core.rb +++ b/lib/arel/nodes/select_core.rb @@ -8,6 +8,13 @@ module Arel @projections = [] @wheres = [] end + + def initialize_copy other + super + @froms = @froms.map { |o| o.clone } + @projections = @projections.map { |o| o.clone } + @wheres = @wheres.map { |o| o.clone } + end end end end diff --git a/lib/arel/nodes/select_statement.rb b/lib/arel/nodes/select_statement.rb index 122f6275fe..50fef776f6 100644 --- a/lib/arel/nodes/select_statement.rb +++ b/lib/arel/nodes/select_statement.rb @@ -8,6 +8,11 @@ module Arel @cores = cores @limit = nil end + + def initialize_copy other + super + @cores = @cores.map { |o| o.clone } + end end end end diff --git a/lib/arel/nodes/update_statement.rb b/lib/arel/nodes/update_statement.rb index 9f069cddb3..27e3e4e6ac 100644 --- a/lib/arel/nodes/update_statement.rb +++ b/lib/arel/nodes/update_statement.rb @@ -8,6 +8,12 @@ module Arel @wheres = [] @values = [] end + + def initialize_copy other + super + @wheres = @wheres.map { |o| o.clone } + @values = @values.map { |o| o.clone } + end end end end |