diff options
author | Vladimir Meremyanin <vladimir@meremyanin.com> | 2011-01-29 14:40:39 +0800 |
---|---|---|
committer | Vladimir Meremyanin <vladimir@meremyanin.com> | 2011-01-29 14:40:39 +0800 |
commit | 2158d592c074813471baa8fa20044b683bb156e6 (patch) | |
tree | e124804a463c55547dd9fe7c4b80e96ce5690065 /lib/arel/visitors | |
parent | 7b445c6dd578277f7313746fc497429a56e4b43c (diff) | |
download | rails-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.rb | 16 |
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 |