mirror of
https://github.com/samsonjs/rack-attack.git
synced 2026-04-27 15:07:41 +00:00
WIP
This commit is contained in:
parent
140ea86b7c
commit
7fab5df499
3 changed files with 15 additions and 2 deletions
|
|
@ -3,7 +3,10 @@ module Rack
|
||||||
class Attack
|
class Attack
|
||||||
class << self
|
class << self
|
||||||
|
|
||||||
def block
|
attr_reader :blocks, :throttles, :whitelists
|
||||||
|
|
||||||
|
def block(name, &block)
|
||||||
|
(@blocks ||= {})[name] = block
|
||||||
end
|
end
|
||||||
|
|
||||||
def throttle
|
def throttle
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@ require_relative 'spec_helper'
|
||||||
describe 'Rack::Attack' do
|
describe 'Rack::Attack' do
|
||||||
include Rack::Test::Methods
|
include Rack::Test::Methods
|
||||||
|
|
||||||
|
before do
|
||||||
|
Rack::Attack.block("ip 1.2.3.4") {|req| req.ip == '1.2.3.4' }
|
||||||
|
end
|
||||||
|
|
||||||
def app
|
def app
|
||||||
Rack::Builder.new {
|
Rack::Builder.new {
|
||||||
use Rack::Attack
|
use Rack::Attack
|
||||||
|
|
@ -10,9 +14,15 @@ describe 'Rack::Attack' do
|
||||||
}.to_app
|
}.to_app
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'has a block' do
|
||||||
|
Rack::Attack.blocks.class.must_equal Hash
|
||||||
|
end
|
||||||
|
|
||||||
it "says hello" do
|
it "says hello" do
|
||||||
get '/'
|
get '/'
|
||||||
last_response.status.must_equal 200
|
last_response.status.must_equal 200
|
||||||
last_response.body.must_equal 'Hello World'
|
last_response.body.must_equal 'Hello World'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,6 @@ require "rubygems"
|
||||||
require "bundler/setup"
|
require "bundler/setup"
|
||||||
|
|
||||||
require "minitest/autorun"
|
require "minitest/autorun"
|
||||||
require "rack"
|
|
||||||
require "rack/test"
|
require "rack/test"
|
||||||
|
|
||||||
require "rack/attack"
|
require "rack/attack"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue