Publicado por Rafael Rosa em 30 de March de 2010
Lançada a versão 1.0 do Sinatra – Um grande marco para a melhor DSL web em Ruby
Em Novembro de 2007, nós apenas mencionamos uma nova biblioteca Ruby para criação de aplicações web, o Sinatra. Levou uma ano até que a comunidade começar a apoiá-lo e nós fizessemos um artigo mais aprofundado. Em todo caso, estamos orgulhosos em anunciar que o Sinatra chegou à versão 1.0!
O Sinatra é conhecido na comunidade Ruby por oferecer aos desenvolvedores um jeito simples de criar aplicações web de todos os tamanhos. O exemplo ultra simplificado clássico é:
require 'rubygems'
require 'sinatra'
get '/hi' do
"Hello World!"
end
Os principais desenvolvedores do Sinatra, Ryan Tomayko, Simon Rozet e Blake Mizerany, em conjunto com outros 50 colaboradores, fizeram um excelente trabalho, produzindo uma poderosa e moderna DSL para Rubistas, e suas idéias inspiraram frameworks similares em outras linguagens, como o Sammy em JavaScript. No ano passado, Satish Talim, do RubyLearning.com, escreveu um excelente artigo chamado 20 rubistas famosos estão usando o Sinatra - E você? (em inglês), que deu uma boa idéia de como ele está sendo utilizado, tanto em aplicações web grandes quando pequenas.
Novidades
Perguntamos à Blake Mizerany qual é a maior mudança entre a versão 0.9 e 1.0:
Acho que a maior mudança foi a limpeza que fizemos. Agora utilizamos internamente o Tilt como sistema de templating, o Sinatra amadureceu, paramos de brincar. Ele está super sólido, a API para extensões amadureceu de forma impressionante, é extremamente fácil criar novas extensões para ele, instalar helpers, métodos DSL e adicionar novas rotas. Tudo que o usuário precisa fazer é escrever
require 'sinatra/sua-extensão'e pronto!.
O changelog oficial oferece mais informações úteis para desenvolvedores que já usam o Sinatra.
A mudança mais significativa, com impacto de longo prazo, é que no último ano foi adicionada integração com o Rack. Em sua apresentação Rack, Sinatra e Middleware (em inglês), Ben Schwarz analisa como o Sinatra interage com o Rack e como você pode utilizar os middlewares do Rack e funcionalidades de mais de um sistema no Sinatra. O principal ganho disso é que podemos criar aplicações modulares em Sinatra através de subclasses do Sinatra::Base para separar partes independentes de uma aplicação:
require 'rubygems'
require 'sinatra/base'
class MyApp < Sinatra::Base
get '/' do
"Hello world!"
end
end
E então usar o seguinte comando num arquivo Rackup:
require 'my_app'
run MyApp
Instalando e experimentando o Sinatra
Se você ainda não está usando o Sinatra e quer fazer algumas experiências, você pode instalá-lo com o RubyGems:
gem install sinatra
Coloque o código de exemplo clássico dentro de um arquivo example.rb:
require 'rubygems'
require 'sinatra'
get '/hi' do
"Hello World!"
end
Depois, após executar o arquivo Ruby, ao acessar o endereço http://localhost:4567/hi você deve ver a mensagem "Hello World!".
Aprenda mais online e no IRC
Os exemplos acima são extremamente triviais, mas você pode fazer coisas muito mais complexas (como inserir aplicações Sinatra dentro de aplicações Rails) e o web site oficial do Sinatra tem exemplos muito interessantes do que você pode fazer com ele. Você também pode consultar a extensa documentação disponível e se quiser dar uma olhada em vários projetos reais que usam o Sinatra para entender os padrões e técnicas utilizados, há uma excelente lista com aplicações e extensões feitas com ele.
Por fim, se quiser fazer perguntas ou jogar conversa fora com os desenvolvedores e usuários do Sinatra, dê uma olhada no canal #sinatra do irc.freenode.net. Você sempre irá encontrar entre 50 e 100 pessoas por lá.

Clique aqui para adicionar ao del.icio.us

30 de March de 2010 às 10:08
Não conhecia o Sinatra até pouco tempo atrás, mas ele me chamou muito atenção pela simplicidade do projeto, concerteza vou me aprofundar melhor agora com a nova versão parabens a equipe do Sinatra
30 de March de 2010 às 10:18
[...] This post was mentioned on Twitter by Ruby Inside Brasil and Ismael Stahelin, Thiago Branco Meurer. Thiago Branco Meurer said: Novo artigo: Lançada a versão 1.0 do Sinatra - Um grande marco para a melhor DSL web em Ruby http://bit.ly/aGNgyD (via @rubyinside_br) cool [...]
02 de April de 2010 às 12:02
[...] os passos do Sinatra 1.0 surge o anúncio oficial do Padrino (repositório no GitHub), um framework para aplicações web [...]
10 de May de 2010 às 12:35
Comecei a trabalhar essa semana com o Sinatra e achei bem bacana. Era justamente o que precisava, um framework simples para um serviço web simples. O serviço em questão não tem persistência, nem interface em html e apenas 2 'actions', logo a escolha do uso do Sinatra caiu muito bem.
Mas, tenho para mim que se for para configurar todo o Sinatra para trabalhar com view builders, routers e tudo mais, prefiro usar o Rails. Tudo isso já está lá, pronto para uso.
No mais, sucesso ao Sinatra!
[]s
19 de October de 2011 às 21:19
Estou vendo vários entusiastas sobre o sinatra/padrino, estou com um site feito nessa linguagem e estou precisando de alguém que se aventure para dar manutenção nele, criar novos módulos e ainda ser remunerado, é, o problema de uma linguagem desconhecida é essa, se o programador muda de área, vc fica na mão.
Espero que haja uma esperança para mim, rs.
Abs.
ps:
Caso alguém se habilite meu email é o rickmail@gmail.com