aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-02-02 15:19:37 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-02-02 15:19:37 -0800
commit4d92a6b33476a5b324188bd86dfa5b5d3f4dcd3a (patch)
tree2e03338aa3852d3e213e293bd2d0a4e190c28320
parent066d9a3f5d24feb628187117769aee81f8538159 (diff)
parente86d4e035bc28e107f7d2234046b80db4825d447 (diff)
downloadrails-4d92a6b33476a5b324188bd86dfa5b5d3f4dcd3a.tar.gz
rails-4d92a6b33476a5b324188bd86dfa5b5d3f4dcd3a.tar.bz2
rails-4d92a6b33476a5b324188bd86dfa5b5d3f4dcd3a.zip
Merge branch 'named-function-predicates'
* named-function-predicates: Test for NamedFunction predication chaining Chain predications off of named functions
-rw-r--r--lib/arel/nodes/named_function.rb2
-rw-r--r--test/visitors/test_to_sql.rb6
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/arel/nodes/named_function.rb b/lib/arel/nodes/named_function.rb
index 56669bf858..5fca33e323 100644
--- a/lib/arel/nodes/named_function.rb
+++ b/lib/arel/nodes/named_function.rb
@@ -3,6 +3,8 @@ module Arel
class NamedFunction < Arel::Nodes::Function
attr_accessor :name
+ include Arel::Predications
+
def initialize name, expr, aliaz = nil
super(expr, aliaz)
@name = name
diff --git a/test/visitors/test_to_sql.rb b/test/visitors/test_to_sql.rb
index 0c7baab923..c8ad40e242 100644
--- a/test/visitors/test_to_sql.rb
+++ b/test/visitors/test_to_sql.rb
@@ -20,6 +20,12 @@ module Arel
assert_equal 'omg(*)', @visitor.accept(function)
end
+ it 'should chain predications on named functions' do
+ function = Nodes::NamedFunction.new('omg', [Arel.star])
+ sql = @visitor.accept(function.eq(2))
+ sql.must_be_like %{ omg(*) = 2 }
+ end
+
it 'works with lists' do
function = Nodes::NamedFunction.new('omg', [Arel.star, Arel.star])
assert_equal 'omg(*, *)', @visitor.accept(function)