Written by thoughtbot

Video: Sinatra At Boston.rb, Part 1

This the first in a series of short videos. They feature Blake Mizerany discussing Sinatra and Heroku in great technical detail at September's Boston.rb.

Blake Mizerany wrote Sinatra in 2006 because he was working on a high traffic site with a lot of POSTs, PUTs, and DELETEs. GETs can be cached but the others cannot.

In this video, Blake discusses the following concepts as they apply to Sinatra:

Backing Into Patterns

Start with a string, start with a text file, use main on Ruby. Move up to Factories and Model-View-Controller and ActiveRecord when you need it.

Rails creates 72 files when you run the rails command. Blake decided he didn't need to start with MVC on each new project.

Clean Routing System

Blake uses Sinatra often for web services. He compares Rails' respond_to with Sinatra's content_type declaration. He discusses his feeling that the routing systems in other frameworks are overly complex undesirable.

get '/users.json' do
  content_type :json
  @user = User.find(params[:id])

His first example, shown above, highlights Sinatra's clean content type approach.


In the next video, Blake discusses:

  • handling the Accepts header using Rack middleware
  • deciding between Rack and Sinatra
  • rack-hoptoad
  • routing tricks such as passing wildcard params into block variables and non-greedy matching