lib/rack/throttle/interval.rb in rack-throttle-0.1.0 vs lib/rack/throttle/interval.rb in rack-throttle-0.2.0

- old
+ new

@@ -27,20 +27,29 @@ # @param [Rack::Request] request # @return [Boolean] def allowed?(request) t1 = request_start_time(request) t0 = cache_get(key = cache_key(request)) rescue nil - allowed = !t0 || (t1 - t0.to_f) >= minimum_interval + allowed = !t0 || (dt = t1 - t0.to_f) >= minimum_interval begin cache_set(key, t1) allowed rescue => e # If an error occurred while trying to update the timestamp stored # in the cache, we will fall back to allowing the request through. # This prevents the Rack application blowing up merely due to a # backend cache server (Memcached, Redis, etc.) being offline. allowed = true end + end + + ## + # Returns the number of seconds before the client is allowed to retry an + # HTTP request. + # + # @return [Float] + def retry_after + minimum_interval end ## # Returns the required minimal interval (in terms of seconds) that must # elapse between two subsequent HTTP requests.