Ruby fora dos trilhos - Nitro and Og!
O Ruby começou a ganhar espaço nas empresas e na blogosfera principalmente por causa do Rails, mas o Rails não é o único framework para desenvolvimento Web em Ruby, um destes outros frameworks é o Nitro Framework ele tem mais ou menos a mesma idade do Rails, mas tem muito menos documentação, e que eu saiba bem menos usuários também.
Neste post vou falar um pouquinho dos meus primeiros 30 minutos com o Nitro …
Uma das coisas que eu mais gosto do Rails e que não é possível de se fazer com o Nitro é simplesmente alterar uma classe com o servidor rodando e as alterações se refletirem automagicamente no browser, mas vamos deixar isto de lado por enquanto …
O nitro diferente do Rails tem mais de uma abordagem para o desenvolvimento, é possível desenvolver aplicações utilizando MVC como o Rails, mas também é possível desenvolver aplicações direto em páginas como no ASP ou no PHP.
Para começar com o nitro basta seguir este passo a passo:
- gem install -y nitro (isto vai instalar o nitro e as suas dependências)
- gen app rocketpower (isto vai criar uma aplicação nitro)
- cd rocketpower
- ruby run.rb (eu precisei editar o arquivo e adicionar um require ‘rubygems’ na segunda linha)
- acessar o endereço http://locahost:9000
Pronto, você esta executando a sua primeira aplicação Nitro!
Até o momento estou achando o Nitro muito confuso, provavelmente por causa da falta de documentação, ou dos exemplos toscos, mas seguem algumas coisinhas legais …
Para programar orientado a páginas, basta criar uma página no diretório public com a extensão .xhtml e quando quiser escrever código Ruby basta coloca-lo entre <?r e ?> ou então quando for para simplesmente imprimir texto usar diretamente #{…} como em qualquer string Ruby.
O nitro não possui uma estrutura de diretórios padrão como o Rails, os arquivos com o código da aplicação são declarados diretamente utilizando require no run.rb, acho que por isto não existe reload automático.
O nitro não obriga a extender uma classe para criar uma classe persistente (na verdade não é o Nitro que faz isto é o Og que é o framework de persistencia utilizado pelo Nitro), ele vai persistir qualquer coisa que tiver um método “serializable_attributes” que é criado automagicamente quando se utiliza os helpers para definição de campos do Og (setting).
Ele não tem nada parecido com migrations, pelo menos não que eu tenha encontrado até agora.
O código do Nitro e do Og eu achei muito mais simples de ler e entender o que esta acontecendo do que o código do Rails, já o código das aplicações escritas com o Nitro eu achei muito bagunçado, parece a grande maior parte dos códigos PHP que se encontra por ai (nada contra PHP apenas contra péssimos programadores PHP que infelizmente são a maioria).
Uma coisa que eu achei bem legal no nitro, é que os parametros para um método de um controller são recebidos como parâmetros do método mesmo e não no mapa “params”.
Bom, o exemplo que eu queria fazer para este post vai ficar para outra hora, pois vou precisar estudar um pouco mais o Nitro e o Og para poder fazer qualquer coisa que não me deixe envergonhado, achei os exemplos bagunçados demais, muitas classes por arquivo e coisas assim …
Por enquanto o Og parece muito verde ainda, ele havia passado um bom tempo com o desenvolvimento quase parado, mas voltou a se mexer agora com o “boom” do Rails.
Ele tem algumas coisas legais, mas por enquanto fico com o Rails
- Mais sobre Ruby e Rails
- Site oficial do Rails
- Mais sobre o Nitro
- Tutorial sobre Rails
- Curso de Ruby On Rails
Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!



Opa, legal, Nitro e Og precisam de mais gente desenvolvendo para melhorar.
E não se esqueçam do lendário “Camping”:http://www.rubyonbr.org/articles/2007/04/14/acampamento-de-curiosos/ o micro-framework do mais lendário ainda Why the Lucky Stiff
E para aqueles que querem extrair tudo de cada ciclo da CPU existe o framework-complemento de Rails, “Merb”:http://brainspl.at/articles/tag/merb do controverso e excelente Ezra Zygmuntowicz.
[…] Portuguese version Here. […]