Skip to content
Simple plugin which allows you to throttle certain activities in your web apps. Uses memcached for speedy implementation and requires Rails 2.1+
Pull request Compare This branch is even with tobi:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
README

README

Throttle arbituary operation. Once limit is reached it will raise a Throttle::LimitExeeded exception. 

Example: 

  Throttle.for("feed:#{request.remote_ip}", :max => 20, :in => 10.minutes) do
    render :xml => Articles.all
  end

  If you want to clear the timeout for the current block ( for example: fraud protection. Clear the throttle when 
  the submitted Credit Card was valid. ) your block can accept a yielded throttle object and call the clear method

  Throttle.for("cc:#{request.remote_ip}", :max => 20, :in => 10.minutes) do |throttle|
    if am.pay(@credit_card)        
      throttle.clear
      redirect_to :action => 'done'
    end
  end
Something went wrong with that request. Please try again.