Chicago

It's my kind of town!
- Sinatra

Yeah, we're real clever. We're also from "The city in mid-west best city in the whole wide wide world" ... which makes us double the clever.

Chicago is a collection of runtime and test extensions and helpers that makes some common tasks a little bit easier.

Installation

First, make sure GemCutter is added to your list of sources. If not, install it like so or just follow the instructions for installing the gemcutter gem:

sudo gem sources -a http://gemcutter.org

Then, installing chicago is a quick gem install:

sudo gem install chicago

Usage

Sinatra runtime app

In your Sinatra app, do this:

require 'chicago'

And you'll get some helpful Sinatra extensions and helpers.

If you're Sinatra app is considered modular - as in, you are not using the Sinatra::Default app - you will want to add the following in your app:

YourApp < Sinatra::Base
  register Sinatra::Chicago            # for some DSL helpers
  helpers Sinatra::Chicago::Helpers    # for standard helpers
  helpers Sinatra::Chicago::Responders # for JSON assistance
end

You don't necessarily need all of them. You just need to "include" the statements that mix-in the functionality you want.

Sinatra testing

Assuming you have required 'rack/test', like so:

require 'rack/test'

This is because these macros use last_request defined by the Rack/Test library. If you're using Riot in your tests of your Sinatra app, do this:

require 'chicago/riot'

... and you'll get a bunch of cool Protest macros for testing specific Sinatra stuff.

If you're using Shoulda in your tests of your Sinatra app, do this:

require 'chicago/shoulda'

... and you'll get a bunch of cool Shoulda macros for testing specific Sinatra stuff.