Sinatra::BigBand
BigBand is a stack of Sinatra extensions, most of them developed as part of BigBand, but usable without, each of available as a separate gem. All BigBand extensions follow the same release cycle.
Usage
Simply replace Sinatra::Base
with Sinatra::BigBand
in your application.
A simple example would be:
require 'sinatra/big_band'
class MyApp < Sinatra::BigBand
# ...
end
Maybe you want all extensions except Sinatra::Compass
?
require 'sinatra/big_band'
class MyApp < Sinatra::BigBand :except => :Compass
# ...
end
The BigBand Stack
Sinatra Extensions
- Sinatra::AdvancedRoutes – Makes routes first class objects
- Sinatra::Compass – Integrates the Compass stylesheet framework
- Sinatra::ConfigFile – Adds YAML config file support
- Sinatra::MoreServer – Adds support for more web servers to Sinatra::Base#run!
- Sinatra::Namespace – Adds namespaces, allows namespaces to have local helpers.
- Sinatra::Reloader – Advanced and fast code reloader
- Sinatra::Sugar – Extensions for Sinatra's standard methods, like #set or #register
Sinatra tool integration:
- AsyncRack – Makes standard rack middleware play nice with
async.callback
- Haml::More – Adds more functionality to Haml and Sass
- monkey-lib – Thin layer over ruby extension libraries (like ActiveSupport) to make those pluggable
- Sinatra::TestHelper – Adds helper methods and better integration for various testing frameworks
- Sinatra::Extension – Mixin to ease Sinatra extension development.
- Yard::Sinatra – Displays Sinatra routes (including comments) in YARD output
Besides those extensions, there are others in the BigBand stack, that are external:
General Goals
- No sub-project relies on BigBand
- All sub-projects should work with MRI/REE >= 1.8.6 (including 1.9.x), JRuby >= 1.4.0 and Rubinius >= 1.0
- Some sub-projects should work with MagLev and IronRuby (partial MacRuby support planned for later release)
- Ease to modify the stack
Setup via gem
Try:
gem install big_band
Running the specs / Manual setup
Try something like this:
# dependencies, rather mainstream. just in case you don't have one of those.
gem install sinatra rspec rack-test rake
# get the source
git clone git://github.com/rkh/big_band.git
rake setup:read_only
# run the specs
rake spec
# run with multiple ruby implementations using rvm
rvm specs ree,1.9.1,rbx,jruby