This commit is contained in:
Aaron Suggs 2012-07-24 19:59:46 -04:00
parent 140ea86b7c
commit 7fab5df499
3 changed files with 15 additions and 2 deletions

View file

@ -3,7 +3,10 @@ module Rack
class Attack
class << self
def block
attr_reader :blocks, :throttles, :whitelists
def block(name, &block)
(@blocks ||= {})[name] = block
end
def throttle

View file

@ -3,6 +3,10 @@ require_relative 'spec_helper'
describe 'Rack::Attack' do
include Rack::Test::Methods
before do
Rack::Attack.block("ip 1.2.3.4") {|req| req.ip == '1.2.3.4' }
end
def app
Rack::Builder.new {
use Rack::Attack
@ -10,9 +14,15 @@ describe 'Rack::Attack' do
}.to_app
end
it 'has a block' do
Rack::Attack.blocks.class.must_equal Hash
end
it "says hello" do
get '/'
last_response.status.must_equal 200
last_response.body.must_equal 'Hello World'
end
end

View file

@ -2,6 +2,6 @@ require "rubygems"
require "bundler/setup"
require "minitest/autorun"
require "rack"
require "rack/test"
require "rack/attack"