diff options
author | Jay Pignata <john.pignata@gmail.com> | 2009-09-04 17:28:36 -0400 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2009-09-28 14:48:13 +1300 |
commit | d48ebeade2d907573e3fb086495b57b10115066c (patch) | |
tree | c5c98e01f7711c0899201b5a47ebc8e08c2d16f6 /activesupport/lib | |
parent | e01f99786a586e41a36d3c1ddc66f080d04b4036 (diff) | |
download | rails-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')
-rw-r--r-- | activesupport/lib/active_support/memoizable.rb | 4 |
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 |