Rooktone/improved-rack-throttle-w-expiry — pull request #1 by dedsm (2013-08-27 15:58:36+00:00)
Title: changing the order of the cases in cache_get and cache_set

when using the SlidingWindow limiter with Redis as cache backend, it doesn't work because the redis gem doesn't do marshaling on the objects when storing them, it only stores strings.

the redis-store gem (https://github.com/redis-store/redis-store) is like a wrapper that does the marshaling, and it works fine, the only problem is that the cache_get and cache_set methods check for :[] and :[]= before checking :set and :get in teh cache backend, :[] and :[]= in Redis::Store don't marshal/unmarshal, while set and get do, so the fix is very easy to support Redis::Store backend, it's just changing the order of the cases.