mirror of
https://github.com/samsonjs/rack-attack.git
synced 2026-04-26 14:57:47 +00:00
Changed track checker to track filter. Made track filter tests more clear.
This commit is contained in:
parent
1857f8dd57
commit
e8d98a7ad3
2 changed files with 8 additions and 8 deletions
|
|
@ -3,19 +3,19 @@ module Rack
|
||||||
class Track
|
class Track
|
||||||
extend Forwardable
|
extend Forwardable
|
||||||
|
|
||||||
attr_reader :checker
|
attr_reader :filter
|
||||||
|
|
||||||
def initialize(name, options = {}, block)
|
def initialize(name, options = {}, block)
|
||||||
options[:type] = :track
|
options[:type] = :track
|
||||||
|
|
||||||
if options[:limit] && options[:period]
|
if options[:limit] && options[:period]
|
||||||
@checker = Throttle.new(name, options, block)
|
@filter = Throttle.new(name, options, block)
|
||||||
else
|
else
|
||||||
@checker = Check.new(name, options, block)
|
@filter = Check.new(name, options, block)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def_delegator :@checker, :[], :[]
|
def_delegator :@filter, :[]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -43,16 +43,16 @@ describe 'Rack::Attack.track' do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "without limit and period options" do
|
describe "without limit and period options" do
|
||||||
it "should delegate [] to check" do
|
it "should assign the track filter to a Check instance" do
|
||||||
tracker = Rack::Attack.track("homepage") { |req| req.path == "/"}
|
tracker = Rack::Attack.track("homepage") { |req| req.path == "/"}
|
||||||
tracker.checker.class.must_equal Rack::Attack::Check
|
tracker.filter.class.must_equal Rack::Attack::Check
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "with limit and period options" do
|
describe "with limit and period options" do
|
||||||
it "should delegate [] method to throttle" do
|
it "should assign the track filter to a Throttle instance" do
|
||||||
tracker = Rack::Attack.track("homepage", :limit => 10, :period => 10) { |req| req.path == "/"}
|
tracker = Rack::Attack.track("homepage", :limit => 10, :period => 10) { |req| req.path == "/"}
|
||||||
tracker.checker.class.must_equal Rack::Attack::Throttle
|
tracker.filter.class.must_equal Rack::Attack::Throttle
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue