aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-05-02 08:38:21 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2011-05-02 08:38:21 -0700
commita3d9c393b4707a03734dcf6831fb9636fabac045 (patch)
treed3fcbbb3975cf9b76bf6c18266fb47460b60de5f
parenta6f56d8b2860a0edd846b94cfe08cdfe61e97e48 (diff)
parent13a20317ff820cc37502bdb7296e66c85b74e465 (diff)
downloadrails-a3d9c393b4707a03734dcf6831fb9636fabac045.tar.gz
rails-a3d9c393b4707a03734dcf6831fb9636fabac045.tar.bz2
rails-a3d9c393b4707a03734dcf6831fb9636fabac045.zip
Merge pull request #50 from ernie/operation_ordering.
InfixOperations should support ordering
-rw-r--r--lib/arel/nodes/infix_operation.rb1
-rw-r--r--test/nodes/test_infix_operation.rb30
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/arel/nodes/infix_operation.rb b/lib/arel/nodes/infix_operation.rb
index 75879ce43f..3911a1e05e 100644
--- a/lib/arel/nodes/infix_operation.rb
+++ b/lib/arel/nodes/infix_operation.rb
@@ -4,6 +4,7 @@ module Arel
class InfixOperation < Binary
include Arel::Expressions
include Arel::Predications
+ include Arel::OrderPredications
include Arel::AliasPredication
include Arel::Math
diff --git a/test/nodes/test_infix_operation.rb b/test/nodes/test_infix_operation.rb
new file mode 100644
index 0000000000..db3216eeee
--- /dev/null
+++ b/test/nodes/test_infix_operation.rb
@@ -0,0 +1,30 @@
+require 'helper'
+
+module Arel
+ module Nodes
+ class TestInfixOperation < MiniTest::Unit::TestCase
+ def test_construct
+ operation = InfixOperation.new :+, 1, 2
+ assert_equal :+, operation.operator
+ assert_equal 1, operation.left
+ assert_equal 2, operation.right
+ end
+
+ def test_operation_alias
+ operation = InfixOperation.new :+, 1, 2
+ aliaz = operation.as('zomg')
+ assert_kind_of As, aliaz
+ assert_equal operation, aliaz.left
+ assert_equal 'zomg', aliaz.right
+ end
+
+ def test_opertaion_ordering
+ operation = InfixOperation.new :+, 1, 2
+ ordering = operation.desc
+ assert_kind_of Ordering, ordering
+ assert_equal operation, ordering.expr
+ assert_equal :desc, ordering.direction
+ end
+ end
+ end
+end