Create multiple routes with one statement.
Use this extension to create a handler for multiple routes:
get '/foo', '/bar' do # ... end
Or for multiple verbs:
route :get, :post, '/' do # ... end
Or even for custom verbs:
route 'LIST', '/' do # ... end
To use the extension in a classic application all you need to do is require it:
require "sinatra" require "sinatra/multi_route" # Your classic application code goes here...
To use the extension in a modular application you need to require it, and then, tell the application you will use it:
require "sinatra/base" require "sinatra/multi_route" class MyApp < Sinatra::Base register Sinatra::MultiRoute # The rest of your modular application code goes here... end
# File lib/sinatra/multi_route.rb, line 54 def delete(*args, &block) super(*route_args(args), &block) end
# File lib/sinatra/multi_route.rb, line 55 def get(*args, &block) super(*route_args(args), &block) end
# File lib/sinatra/multi_route.rb, line 53 def head(*args, &block) super(*route_args(args), &block) end
# File lib/sinatra/multi_route.rb, line 56 def options(*args, &block) super(*route_args(args), &block) end
# File lib/sinatra/multi_route.rb, line 57 def patch(*args, &block) super(*route_args(args), &block) end
# File lib/sinatra/multi_route.rb, line 58 def post(*args, &block) super(*route_args(args), &block) end
# File lib/sinatra/multi_route.rb, line 59 def put(*args, &block) super(*route_args(args), &block) end
# File lib/sinatra/multi_route.rb, line 61 def route(*args, &block) options = Hash === args.last ? args.pop : {} routes = [*args.pop] args.each do |verb| verb = verb.to_s.upcase if Symbol === verb routes.each do |route| super(verb, route, options, &block) end end end