aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors
diff options
context:
space:
mode:
authorVladimir Meremyanin <vladimir@meremyanin.com>2011-01-29 14:40:39 +0800
committerVladimir Meremyanin <vladimir@meremyanin.com>2011-01-29 14:40:39 +0800
commit2158d592c074813471baa8fa20044b683bb156e6 (patch)
treee124804a463c55547dd9fe7c4b80e96ce5690065 /lib/arel/visitors
parent7b445c6dd578277f7313746fc497429a56e4b43c (diff)
downloadrails-2158d592c074813471baa8fa20044b683bb156e6.tar.gz
rails-2158d592c074813471baa8fa20044b683bb156e6.tar.bz2
rails-2158d592c074813471baa8fa20044b683bb156e6.zip
implemented support for math operations in numeric attributes
Diffstat (limited to 'lib/arel/visitors')
-rw-r--r--lib/arel/visitors/to_sql.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index a395b7f765..376d1460db 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -395,6 +395,22 @@ key on UpdateManager using UpdateManager#key=
alias :visit_Time :quoted
alias :visit_TrueClass :quoted
+ def visit_Arel_Nodes_Multiplication o
+ "#{visit o.left} * #{visit o.right}"
+ end
+
+ def visit_Arel_Nodes_Division o
+ "#{visit o.left} / #{visit o.right}"
+ end
+
+ def visit_Arel_Nodes_Addition o
+ "(#{visit o.left} + #{visit o.right})"
+ end
+
+ def visit_Arel_Nodes_Subtraction o
+ "(#{visit o.left} - #{visit o.right})"
+ end
+
def visit_Array o
o.empty? ? 'NULL' : o.map { |x| visit x }.join(', ')
end