Usando Sinatra em Ruby

No artigo anterior deste série de artigos, conversamos sobre o que é Sinatra. Neste artigo, veremos alguns códigos funcionais reais do Sinatra, abordando alguns recursos do Sinatra, os quais serão explorados em profundidade nos próximos artigos desta série.

Antes de começar, você precisará instalar o Sinatra. Instalar Sinatra é tão fácil quanto qualquer outra jóia. Sinatra tem algumas dependências, mas nada importante e você não deve ter problemas para instalá-lo em qualquer plataforma.

$ gem install sinatra

Olá Mundo!

O aplicativo Sinatra "Hello world" é surpreendentemente simples. Não incluindo as linhas requeridas, shebang e espaço em branco, são apenas três linhas. Esta não é apenas uma pequena parte da sua aplicação, como um controlador em uma aplicação Rails, é a coisa toda. Outra coisa que você pode notar é que não precisava executar nada parecido com o gerador Rails para gerar um aplicativo. Basta colar o código a seguir em um novo arquivo Ruby e pronto.

#! / usr / bin / env ruby
exigem 'rubygems'
requer 'sinatra'
get '/' do
'Olá Mundo!'
fim
instagram viewer

Claro que este não é um programa muito útil, é apenas "Olá, mundo", mas aplicativos ainda mais úteis no Sinatra não são muito maiores. Então, como você executa esse minúsculo aplicativo Web? Algum tipo de complexo script / servidor comando? Não, basta executar o arquivo. É apenas um programa Ruby, execute-o!

inatra $ ./hello.rb
== Sinatra / 0.9.4 subiu ao palco em 4567 para desenvolvimento com backup do Mongrel

Ainda não é muito emocionante. Ele iniciou o servidor e está ligado à porta 4567, então vá em frente e aponte seu navegador da Web para http://localhost: 4567/. Aqui está a sua mensagem "Olá, mundo". Os aplicativos da Web nunca foram tão fáceis no Ruby antes.

Usando Parâmetros

Então, vejamos algo um pouco mais interessante. Vamos criar um aplicativo que o cumprimente pelo nome. Para fazer isso, precisaremos usar um parâmetro. Os parâmetros em Sinatra são como tudo o resto - simples e direto.

#! / usr / bin / env ruby
exigem 'rubygems'
requer 'sinatra'
get '/ hello /: name' do
"Olá # {params [: nome]}!"
fim

Depois de fazer essa alteração, você precisará reiniciar o aplicativo Sinatra. Mate-o com Ctrl-C e execute-o novamente. (Existe uma maneira de contornar isso, mas veremos isso em um artigo futuro.) Agora, os parâmetros são diretos. Fizemos uma ação chamada /hello/:name. Essa sintaxe está imitando a aparência dos URLs, então vá para http://localhost: 4567 / olá / seu nome vê-lo em ação.

o /hello parte corresponde à parte do URL da solicitação que você fez e :nome irá absorver qualquer outro texto que você der e colocá-lo no params hash sob a chave :nome. Os parâmetros são simples assim. É claro que há muito mais que você pode fazer com eles, incluindo parâmetros baseados em regexp, mas isso é tudo o que você precisa em quase todos os casos.

Adicionando HTML

Finalmente, vamos incrementar esse aplicativo com um pouco de HTML. O Sinatra retornará o que receber do seu manipulador de URL para o navegador da web. Até agora, acabamos de retornar uma sequência de texto, mas podemos adicionar um pouco de HTML sem nenhum problema. Usaremos o ERB aqui, assim como é usado no Rails. Existem outras opções (sem dúvida melhores), mas essa é talvez a mais familiar, como vem com o Ruby, e vai dar certo aqui.

Primeiro, Sinatra renderizará uma visão chamada disposição se existir. Essa exibição de layout deve ter um produção declaração. Essa declaração de rendimento capturará a saída da visualização específica que está sendo renderizada. Isso permite que você crie layouts de maneira muito simples. Finalmente, temos um Olá, que gera a mensagem de saudação real. Essa é a exibição que foi renderizada usando o erb: olá chamada de método. Você notará que não há arquivos de exibição separados. Pode haver, mas para um aplicativo tão pequeno, é melhor manter todo o código em um único arquivo. Embora as visualizações sejam exibidas no final do arquivo.

#! / usr / bin / env ruby
exigem 'rubygems'
requer 'sinatra'
get '/ hello /: name' do
@name = params [: nome]
erb: olá
fim
__FIM__
@@ layout





@@ Olá

Olá !

E aí está. Temos um aplicativo hello world completo e funcional em cerca de 15 linhas de código, incluindo as visualizações. Nos artigos a seguir, examinaremos mais de perto as rotas, como você pode armazenar e recuperar dados e como fazer melhores visualizações com o HAML.

instagram story viewer