aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
diff options
context:
space:
mode:
authorJay Pignata <john.pignata@gmail.com>2009-09-04 17:28:36 -0400
committerMichael Koziarski <michael@koziarski.com>2009-09-28 14:48:13 +1300
commitd48ebeade2d907573e3fb086495b57b10115066c (patch)
treec5c98e01f7711c0899201b5a47ebc8e08c2d16f6 /activesupport/lib/active_support
parente01f99786a586e41a36d3c1ddc66f080d04b4036 (diff)
downloadrails-d48ebeade2d907573e3fb086495b57b10115066c.tar.gz
rails-d48ebeade2d907573e3fb086495b57b10115066c.tar.bz2
rails-d48ebeade2d907573e3fb086495b57b10115066c.zip
Escaping symbol passed into Memoizable's flush_cache for query methods to allow them to be cleared
Signed-off-by: Michael Koziarski <michael@koziarski.com> [#3138 state:committed]
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r--activesupport/lib/active_support/memoizable.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/memoizable.rb b/activesupport/lib/active_support/memoizable.rb
index 7724b9d88b..b197fbc9bf 100644
--- a/activesupport/lib/active_support/memoizable.rb
+++ b/activesupport/lib/active_support/memoizable.rb
@@ -57,10 +57,10 @@ module ActiveSupport
end
end
- def flush_cache(*syms, &block)
+ def flush_cache(*syms)
syms.each do |sym|
(methods + private_methods + protected_methods).each do |m|
- if m.to_s =~ /^_unmemoized_(#{sym})/
+ if m.to_s =~ /^_unmemoized_(#{sym.to_s.gsub(/\?\Z/, '\?')})/
ivar = ActiveSupport::Memoizable.memoized_ivar_for($1)
instance_variable_get(ivar).clear if instance_variable_defined?(ivar)
end