diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-05-02 08:38:21 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-05-02 08:38:21 -0700 |
commit | a3d9c393b4707a03734dcf6831fb9636fabac045 (patch) | |
tree | d3fcbbb3975cf9b76bf6c18266fb47460b60de5f | |
parent | a6f56d8b2860a0edd846b94cfe08cdfe61e97e48 (diff) | |
parent | 13a20317ff820cc37502bdb7296e66c85b74e465 (diff) | |
download | rails-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.rb | 1 | ||||
-rw-r--r-- | test/nodes/test_infix_operation.rb | 30 |
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 |