0.0
Low commit activity in last 3 years
A long-lived project that still receives updates
Middleware to reject/allow requests before allocating a database connection or any resources
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0
 Project Readme

Build Ruby Style Guide Gem Version

Strong Routes

Strong Routes is a simple Rack middleware to reject requests to unknown routes before allocating connections or any resources.

Installation

Add this line to your application's Gemfile:

gem 'strong_routes'

And then execute:

$ bundle

Or install it yourself as:

$ gem install strong_routes

Usage

Rails Apps

In Rails apps, using Strong Routes is as simple as adding it to your Gemfile. The middleware is automatically added to the middleware stack. Any routes defined by the application are automatically allowed by default.

Rack Apps

In Rack apps, load the StrongRoutes::Allow middleware into your middleware stack:

app.insert_before StrongRoutes::Allow, ResourceLoadingMiddleware

In (non-Rails) Rack apps, allowed routes are empty default. Allowed routes are specified using the allowed_routes config option:

StrongRoutes.config.allowed_routes = [ '/', '/posts' ]

Routes can be specified as strings or regular expressions:

StrongRoutes.config.allowed_routes = [ /\A\//i, /\A\/posts/i ]

Response

Any routes that aren't allowed will return a 404 by default. In Rails apps, Strong Routes renders public/404.html if it is present. If it is not, Strong Routes renders an empty response:

[ 404, {}, [] ]

The content that is returned can be specified using the content config option:

StrongRoutes.config.content = File.read(Rails.root.join('public/404.html'))
StrongRoutes.config.content_type = "text/html"

Contributing

  1. Fork it ( http://github.com//strong_routes/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request