Muitos inclusive confundem o tal "Ruby on Rails" com uma linguagem, sendo que é um full- framework. Um poderoso framework para desenvolvimento web, que utiliza a linguagem Ruby como sua engine. Apesar de notar seu poder e simplicidade, fui atrás de focar mais no aprendizado da linguagem Ruby.
Com Ruby me aventurei em desenvolver diversos aplicativos para facilitar algumas rotinas, automação, enfim. Lá estava eu com uma aplicação pronta mas queria colocá-la em um web server. Já tinha desenvolvido com Rails, mas minha aplicação era tão simples que encaixá-la ao Rails seria de fato "muito copo para pouca água". Foi aí que conheci o Sinatra...
Sinatra é uma DSL que permite desenvolver aplicações web em Ruby com o mínimo de esforço. É flexível e permite ao desenvolvedor, de uma forma muito simples e rápida, aplicar os conceitos de REST e MVC na aplicação. O Sinatra utiliza diversas bibliotecas para renderizar as views/templates da aplicação. Neste artigo iremos utilizar o famoso "erb".
Quem já tem familiaridade com frameworks MVC terá pouca ou nenhuma dificuldade em entender o Sinatra.
Instalando as gems:
gem install sinatra gem install erb
Vamos criar uma aplicação web que recebe uma palavra ou frase em letras minúsculas, e transforma em letras maiúsculas (as explicações estão em forma de comentário no código):
upcase_web.rb
require 'sinatra' require 'erb' # Por padrão, o Sinatra assume que as views estão no diretório "/views" da aplicação. # Para mudar, utilize o comando "set" do Sinatra informando em qual diretório estarão as views set :views, File.dirname(__FILE__) + '/pages' # Aqui estou dizendo ao Sinatra: para uma requisição em "/", com método "get" (REST), você deve redirecionar para a página "index.erb" get '/' do erb :index end # O código por si só já diz tudo... get '/transforma' do erb :form_transforma end # Toda requisição a "/transforma" com método "post" deve redirecionar o resultado para a página "result_transforma.erb" post '/transforma' do # Em params[:simbolo] o Sinatra guarda todos os parâmetros passados na requisição result = params[:letras_minusculas] # O Sinatra utiliza variáveis de instância que serão mostradas no resultado a ser redirecionado @letras_maiusculas = result.upcase # Redireciona para a página "result_transforma.erb", que terá a variável de instância de retorno erb :result_transforma endindex.erb:
html... Transformar palavra html...form_transforma.erb (o paramêtro a ser enviado no form chegará para o Sinatra dentro do hash "params[ ]" supracitado):
html...html...
result_transforma.erb (para quem ainda não conhece o erb do Ruby, isto é similiar ao "scriptlet" do JSP no Java, e a variável mostrada é a mesma que foi redirecionada pela action no controller):
html... Palavra transformada: <%= @letras_maiusculas %> html...Rodando (o Ruby vai olhar para o "require 'sinatra' " no arquivo, onde o Sinatra irá iniciar o WebServer, que por padrão é o WEBrick na porta 4567):
ruby upcase_web.rbSimples, não?
O objetivo deste artigo foi mostrar uma introdução ao Sinatra e uma alternativa ao Rails para desenvolver aplicações web. Com Sinatra é permitido ainda fazer coisas muito mais avançadas.
Para quem quiser se aprofundar mais no uso desta poderosa DSL, acesse o site do SinatraRB.
Nenhum comentário:
Postar um comentário