class Rack::IpRestrictor::Middleware

Rack middleware

Public Class Methods

new(app, options={}) click to toggle source
# File lib/rack_ip_restrictor/middleware.rb, line 4
def initialize(app, options={})
  @app = app
  @options = options
end

Public Instance Methods

call(env) click to toggle source

Rack middleware call method

# File lib/rack_ip_restrictor/middleware.rb, line 10
def call(env)
  remote_addr = IPAddr.new(env['REMOTE_ADDR'])

  Rack::IpRestrictor.config.restrictions.each do |restriction|
    return access_denied unless restriction.validate(env, remote_addr)
  end

  @app.call(env)
end

Private Instance Methods

access_denied() click to toggle source

@return [Array] The response array [Status, set of headers, body]

# File lib/rack_ip_restrictor/middleware.rb, line 22
def access_denied
  Rack::IpRestrictor.config.response
end