read

Que Ruby é uma linguagem muito fácil de se utiilzar você já deve saber.

Que Rails é um framework muito simples de se utilizar você também deve saber.

Mas e o Sinatra? Você já conhece?

Sinatra é um micro-framework para criar aplicações web de uma forma simples, fácil e rápida. A vantagem dele sobre qualquer outro framework web é que você consegue resultados rápidos em um esforço mínimo, enquanto que com outros frameworks você consegue um resultado mais robusto com um tempo relativamente maior.

O uso do Sinatra é recomendado para subir pequenas aplicações rapidamente, mas, grandes projetos também podem ser feitos no Sinatra.

O Sinatra possui a seguinte estrutura:

  • a pasta raiz do projeto;
  • um arquivo .rb qualquer que é inicializado no console;
  • pasta views;
  • pasta public;
  • arquivos de classe quaisquer;

Exemplificando:

Antes de mais nada, vamos instalar a gem do sinatra:

$ gem install sinatra

Agora, vamos criar uma pasta para guardar os arquivos desse projeto, a minha se chamará sinatra-example. Dentro dessa pasta, vamos criar o arquivo example.rb que terá todas as rotas de requisição.

Obrigatoriamente, devemos fazer o require do sinatra no example.rb. As primeiras linhas do arquivo serão:

require 'rubygems'
require 'sinatra'

Com isso, podemos utilizar o sinatra em nosso projeto. Nosso primeiro exempo o famoso ‘hello world’ será exibir uma mensagem qualquer no browser.

No example.rb, digite:

get '/hello' do
  'hello world'
end

Com isso, você pode ver o seguinte: o funcionamento do sinatra é baseado em requisições HTTP, como o get. O parâmetro ‘/hello’ é a url digitada no browser e o que está entre aspas dentro do do, end é o que será renderizado no browser quando a url digitada pelo usuário for a ‘/hello’. No console, digite:

$ ruby example.rb

Você receberá uma mensagem como:

[2010-10-22 13:41:23] INFO  WEBrick::HTTPServer#start: pid=1788 port=4567

Isso diz que o sinatra foi inicializado na porta 4567.

Abra no browser http://localhost:4567/hello e veja o resultado.

Ok, isso é muito simples. Vamos ao próximo passo. Iremos mostrar uma página html criada por nós. Por padrão, o sinatra lê todos os arquivos html dentro da pasta app/views, logo, vamos criar essa pasta. Pasta criada, crie um arquivo chamado index.erb e coloque seu código html dentro dele. Nota, o sinatra lê diversos tipos de templates, html, erb, haml, erubis, etc. Vamos utilizar o .erb. Criado seu arquivo index.erb, abra o arquivo example.rb e crie a requisição para ele.

get '/' do
  erb :index
end

Após qualquer alteração no arquivo example.rb, devemos reinicializar o sinatra. Após reinicializar a aplicação, abra o endereço http://localhost:4567/

Todo o código digitado na sua index.erb será renderizado no navegador.

Vamos para o último exemplo desse post:

No sinatra, qualquer variável declarada no escopo da requisição, pode ser utilizada na view do projeto.

Vamos exemplifica isso criando uma requisição onde o usuário irá inserir um nome qualquer na url ‘/user/nome’ e ele será renderizado na view.

Nossa requisição ficará assim:

get '/user/:name' do
  @name = "You entered #{params[:name]}"
  erb :user
end

Dentro da pasta views, vamos criar uma página user.erb para exibir a variável ‘@name’.

Você pode fazer isso da forma que lhe convir, no meu exemplo ficará assim:

<center>
<h1><%= @name %></h1>
</center>

Por hora é isso, nos próximos posts pretendo exemplificar o uso de filtros.

Há um exemplo do meu código no github

Abraços.

Blog Logo

Luciano Sousa


Published

Image

Luciano Sousa

tech and other stuffs

Back to Overview