aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan De Poorter <jan@defv.be>2008-08-25 12:37:34 +0200
committerPratik Naik <pratiknaik@gmail.com>2008-08-29 14:06:37 +0100
commitdb116a2ed688d36570f412a42e9fc33dcbca56c7 (patch)
tree2f2623fc889af731135efbc06371db59ba9cc27c
parent6577942b61b98e3bca54c0af3df57f8334b832b9 (diff)
downloadrails-db116a2ed688d36570f412a42e9fc33dcbca56c7.tar.gz
rails-db116a2ed688d36570f412a42e9fc33dcbca56c7.tar.bz2
rails-db116a2ed688d36570f412a42e9fc33dcbca56c7.zip
Fix NamedScope regex so methods containing "an" get delegated to proxy_found. [#901 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
-rw-r--r--activerecord/lib/active_record/named_scope.rb2
-rw-r--r--activerecord/test/cases/named_scope_test.rb4
2 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/named_scope.rb b/activerecord/lib/active_record/named_scope.rb
index c99c4beca9..b9b7eb5f00 100644
--- a/activerecord/lib/active_record/named_scope.rb
+++ b/activerecord/lib/active_record/named_scope.rb
@@ -103,7 +103,7 @@ module ActiveRecord
attr_reader :proxy_scope, :proxy_options
[].methods.each do |m|
- unless m =~ /(^__|^nil\?|^send|^object_id$|class|extend|^find$|count|sum|average|maximum|minimum|paginate|first|last|empty?|any?|respond_to?)/
+ unless m =~ /(^__|^nil\?|^send|^object_id$|class|extend|^find$|count|sum|average|maximum|minimum|paginate|first|last|empty\?|any\?|respond_to\?)/
delegate m, :to => :proxy_found
end
end
diff --git a/activerecord/test/cases/named_scope_test.rb b/activerecord/test/cases/named_scope_test.rb
index 6f6ea1cbe9..4fe7f4f5b9 100644
--- a/activerecord/test/cases/named_scope_test.rb
+++ b/activerecord/test/cases/named_scope_test.rb
@@ -249,6 +249,10 @@ class NamedScopeTest < ActiveRecord::TestCase
assert_equal Topic.base.select(&:approved), Topic.base.find_all(&:approved)
end
+ def test_rand_should_select_a_random_object_from_proxy
+ assert Topic.approved.rand.is_a? Topic
+ end
+
def test_should_use_where_in_query_for_named_scope
assert_equal Developer.find_all_by_name('Jamis'), Developer.find_all_by_id(Developer.jamises)
end