This extension is part of the Sinatra::Contrib project. Run gem install sinatra-contrib to have it available.
Sinatra::Extension
Sinatra::Extension is a mixin that provides some syntactic sugar for your extensions. It allows you to call directly inside your extension module almost any Sinatra::Base method. This means you can use get to define a route, before to define a before filter, set to define a setting, a so on.
Is important to be aware that this mixin remembers the methods calls you make, and then, when your extension is registered, replays them on the Sinatra application that has been extended. In order to do that, it defines a registered method, so, if your extension defines one too, remember to call super.
Usage
Just require the mixin and extend your extension with it:
require 'sinatra/extension'
module MyExtension
extend Sinatra::Extension
# set some settings for development
configure :development do
set :reload_stuff, true
end
# define a route
get '/' do
'Hello World'
end
# The rest of your extension code goes here...
endYou can also create an extension with the new method:
MyExtension = Sinatra::Extension.new do # Your extension code goes here... end
This is useful when you just want to pass a block to Sinatra::Base.register.
Sinatra