Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sinatra-advanced-routes

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sinatra-advanced-routes

  • 0.5.3
  • Rubygems
  • Socket score

Version published
Maintainers
2
Created
Source

Sinatra::AdvancedRoutes

Makes routes first class objects in Sinatra.

Build Status

Check out sinatra-contrib you are looking for other fancy Sinatra extensions.

Installation

Add to your Gemfile :

gem 'sinatra-advanced-routes'

If you are extending Sinatra::Base, register the extension manually :

require "sinatra/base"
require "sinatra/advanced_routes"

class Foo < Sinatra::Base
  register Sinatra::AdvancedRoutes
end

Examples

Route manipulation

require "sinatra"
require "sinatra/advanced_routes"

admin_route = get "/admin" do
  administrate_stuff
end

before do
  # Let's deactivate the route if we have no password file.
  if File.exists? "admin_password" then admin_route.activate
  else admin_route.deactivate 
  end
end

first_route = get "/:name" do
  # stuff
end

other_route = get "/foo_:name" do
  # other stuff
end

# Unfortunatly first_route will catch all the requests other_route would
# have gotten, since it has been defined first. But wait, we can fix this!
other_route.promote

Route inspection

require "some_sinatra_app"

SomeSinatraApp.each_route do |route|
  puts "-" * 20
  puts route.app.name   # "SomeSinatraApp"
  puts route.path       # that's the path given as argument to get and akin
  puts route.verb       # get / head / post / put / delete
  puts route.file       # "some_sinatra_app.rb" or something
  puts route.line       # the line number of the get/post/... statement
  puts route.pattern    # that's the pattern internally used by sinatra
  puts route.keys       # keys given when route was defined
  puts route.conditions # conditions given when route was defined
  puts route.block      # the route's closure
end

Some of that fields (like conditions or pattern) can be changed, which will take immediate effect on the routing.

FAQs

Package last updated on 19 Apr 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc