Thiago Silvino

Ruby sem Rails

*O Ruby e o Rails*

Na semana passada comecei a estudar a linguagem Ruby. Li alguns tutoriais e fiquei muito empolgado com a facilidade de uso e com o método de programação. A linguagem Ruby é muito flexivel, nela quase tudo é tratado como um objeto. Se você não acredita e quer ver com seus próprios olhos, dê uma olhada no shell interativo do tutorial TryRuby (em inglês) ou instale o Ruby na sua máquina e siga o tutorial Ruby em Vinte Minutos (bom e velho Português do Brasil!).

Aprendi trabalhar com variáveis, fazer loops, criar classes, blocos, etc., porém foi muito difícil encontrar um bom tutorial que me explicasse como usar a liguagem Ruby para gerar páginas dinâmicas, sem usar o framework Rails. Tudo o que eu procurava na web me levava ao Rails. Acredito que isso faz muitas pessoas desistirem de continuar estudando a linguagem.

Quero deixar claro que não tenho nada contra o Rails. O Rails é um ótimo framework, faz as coisas se tornarem muito simples, porém fica dificil para o iniciante em Ruby separar o que faz parte do framework e o que faz parte da linguagem em si. E na verdade a pessoa terá que aprender a usar o framework e os novos métodos do Ruby ao mesmo tempo. Se você conhece alguém possa tirar suas dúvidas, acredito que aprender os dois simultâneamente é o caminho a seguir, porém, se como eu você é auto-didata, você pode passar mais um pouco de tempo aprendendo a usar a linguagem Ruby antes de partir para Rails.

O Rails foi desenvolvido para aumentar a produtividade, mas se você tem muitas dúvidas sobre Ruby você não será produtivo e pode acabar se confundindo. Por outro lado, se as suas dúvidas quanto a linguagem forem sanadas, você realmente alcançará a produtividade desejada.

*O Ruby sem o Rails*

Antes de sair procurando na web decidi entar no diretório de instalação do Ruby para revirar o código fonte de alguns scripts e ver se encontrava algo que me apontasse o caminho das pedras. Abri o meu terminal e fiz aquela pergunta que todo bom usuário do Slackware faz "whereis ruby", uma das respostas apontava para "/usr/lib/ruby/" entrei nesse diretório e encontrei os scripts do Ruby 1.8, alguns minutos depois cheguei ao arquivo erb.rb (outro ponto forte do Ruby, todo script vem com muita documentação incluída em seu código fonte).

O ERB é um sistema de template poderoso e de fácil uso, que permite embutir o Ruby dentro de arquivos de texto, xml e até mesmo arquivos HTML. Todo código Ruby que for incluido dentro de tags <% %> será executado como um script Ruby.

No fim da documentação encontrei o que estava procurando, segue a tradução:
# Há uma variedade de soluções para geração de templates disponíveis em vários projetos feitos em Ruby:
# * O grande irmão do ERB, eRuby, trabalha da mesma forma mas é escrito em C para performance;
# * Amrita (bom para produzirHTML/XML);
# * cs/Template (C para performance);
# * RDoc, distribuído com Ruby, usa o seu próprio motor para gerar templates, o qual pode ser usado em qualquer lugar;
# * e outros; faça uma busca no RAA.
# Rails, o framework para aplicações web, usa ERB para criar views.

Isso era tudo o que eu precisava saber. Apartir disso começei a pesquisar na web sobre ERB e eRuby.

O eRuby pode executar o código Ruby incluido dentro de páginas HTML e em conjunto com o mod_ruby você pode fazer o Apache servir suas páginas dinâmicas escritas em Ruby (essas páginas levam a extensão .rhtml). Para trabalhar com sessões e recuperar dados de formulários do HTML pelo método POST, você deve criar um objeto CGI dentro do código Ruby e esse objeto fará o trabalho pesado para você. No tutorial de Ruby do Eustáquio Rangel você encontra um exemplo de uso do objeto CGI.

Consulte o site do mod_ruby para pegar o código fonte dos e fazer a integração com o Apache.

No próximo post vou explicar a integração com o Apache e fornecer os pacotes para instalação no Slackware.

Vou ficando por aqui.

Até mais!

ruby

Comments