aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-04-28 00:40:42 -0700
committerJosé Valim <jose.valim@gmail.com>2011-04-28 00:40:42 -0700
commit182d00897a55d01e46087f8ff2646ae86b9ed365 (patch)
tree5e4e88151dc9cb4b3aa2d2b65501eb6656ebe27c /activesupport/lib
parentbe55228bbf7df58d5eff483ae1b105fa7680de71 (diff)
parent72759f58674138a89f68a1184bfc2df8327d9d0d (diff)
downloadrails-182d00897a55d01e46087f8ff2646ae86b9ed365.tar.gz
rails-182d00897a55d01e46087f8ff2646ae86b9ed365.tar.bz2
rails-182d00897a55d01e46087f8ff2646ae86b9ed365.zip
Merged pull request #219 from panthomakos/memcache.
Character encoding issues with MemCacheStore in 1.9.2
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/cache/mem_cache_store.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/cache/mem_cache_store.rb b/activesupport/lib/active_support/cache/mem_cache_store.rb
index 45263d482f..a4b20719cd 100644
--- a/activesupport/lib/active_support/cache/mem_cache_store.rb
+++ b/activesupport/lib/active_support/cache/mem_cache_store.rb
@@ -158,7 +158,10 @@ module ActiveSupport
private
def escape_key(key)
- key = key.to_s.gsub(ESCAPE_KEY_CHARS){|match| "%#{match.getbyte(0).to_s(16).upcase}"}
+ # Fix for EncodedKeyCacheBehavior failing tests in caching_test.rb.
+ key = key.to_s.dup
+ key = key.force_encoding(ESCAPE_KEY_CHARS.encoding) if key.respond_to?(:encoding) && key.encoding != ESCAPE_KEY_CHARS.encoding
+ key = key.gsub(ESCAPE_KEY_CHARS){|match| "%#{match.getbyte(0).to_s(16).upcase}"}
key = "#{key[0, 213]}:md5:#{Digest::MD5.hexdigest(key)}" if key.size > 250
key
end