Bem… o nome é bem diferente, é a primeira coisa que notamos. Mas o que exatamente vem a ser o Ruby on Rails, que a partir de agora, para poupar digitação, chamarei apenas de RoR.
RoR é um framework para desenvolvimento de aplicações web, ou seja, websites dinâmicos, que acessam e modificam dados armazenados em bancos de dados. É baseado na linguagem de programação Ruby, desenvolvida no Japão e que vem dando o que falar nas comunidades de programação, principalmente as de Java.
O que torna o RoR tão falado???
Simplicidade no desenvolvimento. Essa é a frase mais utilizada para descrever a coisa. Uma piada que muito circulou no mundo do desenvolvimento a algum tempo foi que um simples arquivo de configuração de Java era maior do que uma aplicação inteira desenvolvida com RoR. No próprio site oficial do framework (ver links ao final…), existe um video explicando como desenvolver um sistema completo de blog em 15 minutos e com apenas 58 linhas de código. Ficou curioso??? Pois bem, eu fiquei…
Tentando entender
O início da curva de aprendizagem de qualquer linguagem de programação não é fácil. É preciso procurar tutoriais pela Internet e, no meu caso, procurar um bom livro que ensine passo-a-passo. Eu adquiri uma publicação da O’Reilly que me pareceu muito boa, de início. Porém, quando recebi o livro e tentei começar, verifiquei que ainda precisava de algumas navegadas pelo bom e velho Google, antes de iniciar a aplicação de teste explicada no livro.
Assim como se sai de um colégio mais simples para um mais avançado, no qual os professores não têm a paciência de explicar coisas que você já deveria saber, o mundo RoR também possui essa característica e não encontrei uma receita de bolo que tratasse a coisa da forma “agora abra janela tal e digite tal coisa”. Assim, até eu entender que depois de instalar no Windows eu deveria abrir o prompt do DOS para iniciar a interação com o framework, demorou umas boas horas, para não dizer dias!
Mas eis que consegui.
Da instalação ao início da programação em 10 minutos
Isso mesmo! O RoR é multiplataforma, o que significa que independente do seu sistema operacional, poderá trabalhar ele. Também acessa diversos bancos de dados, inclusive o temido Oracle. Fiz a instalação no Windows, apesar de ter também uma máquina rodando Linux. O instalador para Windows é o one-click-installer (link no final do post) e instala todo o ambiente Ruby em sua máquina. Escolha qualquer partição de sua máquina para instalar. Pode ser no C, no D:, no E: ou qualquer uma que vc ache mais adequado.
Uma vez instalado, abra a janela do DOS (rs) e digite ruby -v. Você verá a seguinte mensagem:
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386 - mswin32]
Isso significa que o Ruby está instalado e funcionando, mostrando a versão e o seu sistema operacional.
Agora é preciso instalar o Rails, que nada mais é do que um framework que funciona junto com o Ruby. Imagine que o Ruby é um sistema operacional como o Windows e o Rails um software que você instala depois de ter instalado o primeiro, como por exemplo o Word. Não é possível utilizar o Word sem ter o Windows instalado. Esse é o conceito.
O Ruby possui um sistema para instalação de plugins externo semelhante ao apt-get do Linux Debian, ou oYaST do SuSE Linux: basta digitar o que se quer e ele localiza na Web a versão mais recente e automaticamente o instala, sem que você precise se preocupar com mais nada. Essa é a maravilha do software livre: tudo a disposição, sempre nas versões mais estáveis e de graça!
O sistema de instalação mencionado é o GEM, para instalar o Rails com a ajuda deste, basta digitar ruby gem install rails –include-dependencies. Todas as ações tomadas aparecerão na tela e então o Rails estará instalado. Muito simples: em menos de 10 minutos todo o seu ambiente de desenvolvimento está instalado e pronto para ser utilizado, sem o menor sofrimento.
Agora precisamos criar uma aplicação. O RoR trabalha em cima do conceito “padronização ao invés de configuração” o que na prática significa que se você adotar a padronização de nomenclatura de nomes de tabelas em banco de dados e nos objetos, o RoR fará todo o trabalho de configuração e acesso aos dados sozinho, para que sua única preocupação seja o desenvolvimento da aplicação. Nada de fazer trabalho sujo!
Para criarmos nossa primeira aplicação, entendendo que estamos dentro do diretório ruby, digitamos rails NomeDaAplicação, onde NomeDaAplicação é o nome do seu projeto. Será criada uma pasta com este nome dentro da pasta ruby. O resultado será o seguinte:
create
create app/controlle
create app/helpers
create app/models
create app/views/lay
create config/enviro
…
create doc/README_FO
create log/server.lo
create log/productio
create log/developme
create log/test.log
A lista foi truncada para não ocupar muito espaço aqui. Percebe-se claramente que além de criar a pasta com o nome do seu aplicativo, que aqui chamei de blog, criou dentro dela várias outras pastas que manterão toda a sua programação organizada, mantendo sempre a mesma estrutura para todos os seus projetos subsequentes.
Aqui criamos o ambiente de desenvolvimento. Está na hora de ver o RoR em ação!
Iniciando o web server
O RoR funciona com vários servidores web, como Apache, por exemplo. Porém, ele já vem com seu próprio servidor web, que é chamado de WEBrick. Para iniciá-lo, digite:
cd blog #este comando o leva para dentro da pasta do projeto
ruby script/server # Este comando starta o servidor para este projeto.
É importante dizer que quando estamos trabalhando no Windows, é necessário digitar a palavra ruby antes de chamar os comandos, o que não acontece no Linux.
Feito isso, o servidor Web está rodando e pode ser acessadovia Browser. A resposta no prompt de comando é a seguinte:
=> Booting WEBrick…
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with –help for options
[2007-02-11 17:34:05] INFO WEBrick 1.3.1
[2007-02-11 17:34:05] INFO ruby 1.8.5 (2006-12-25) [i386-mswin32]
[2007-02-11 17:34:05] INFO WEBrick::HTTPServer#start: pid=3448 port=3000
Para vermos o resultado, basta abrir o seu browser e digitar: localhost:3000 para visualizar a seguinte tela:

Caso você receba uma tela de erro 404, tente verificar se o seu firewall não tá bloqueando o acesso à porta 3000.
Tá, e agora???
Bem… percebeu o quanto tudo foi muito simples e rápido??? Mas não pense que por este fato o RoR não é poderoso. Ainda estou estudando e comendo grama, mas o pouco que já pude verificar, é realmente uma plataforma de desenvolvimento fantástica, que não fica nada a dever a outras mais antigas e comumente utilizadas.
Vamos então mexer com nossa aplicação, criando um controle e um view.
Abra uma nova janela do DOS, pois a que estava aberta agora está ocupada pelo servidor Web. Vá até a pasta de seu projeto, que provavelmente será c:/ruby/blog. Digite em seguida ruby script/generate controller home, onde script/generate é o comando Ruby para criação de um novo script, controller é o tipo de script gerado e home o nome do controller. O retorno será o seguinte:
exists app/controllers/
exists app/helpers/
create app/views/home
exists test/functional/
create app/controllers/home_contro
create test/functional/home_contro
create app/helpers/home_helper.rb
Perceba que ele verifica a existência de algumas pastas e cria novas pastas e arquivos dentro das já existentes. Com isso, ele está ainda montando o ambiente de desenvolvimento, sob demanda. Ao que percebi, quando se utiliza o servidor web nativo do Ruby, as URLs ficam extramente amigáveis, como por exemplo: http://seudominio.com.br/posts/15. Nada de URLs cheias de parâmetros. Mais fácil inclusive para você testar com mais agilidade o resultado de suas alterações. Percebemos que a partir do seudominio.com.br temos o nome das funções dentro do ambiente: posts é o nome do controller, arquivo que gerencia os dados e 15 é o ID do registro.
Vamos agora rapidamente mostrar alguma coisa no Browser, já dentro de sua aplicação. Abra seu editor de textos favoritos (o meu é o UltraEdit mas neste caso estou usando o simpático e providencial Bloco de Notas do Windows). Crie um documento com o conteúdo <%= @ola %> e salve. Procure pela pasta app dentro da pasta blog. Repare que ali estão 4 pastas onde vc colocará a maioria dos seus scripts e modelos. Salve dentro da pasta views > home como index.rhtml.

Com isso, criamos um arquivo que será chamado pelo controller home, que por sua vez trocará o @ola pelo conteudo associado à variável contida no arquivo home_controller.rb. Para isso, procure pelo home_controller.rb dentro da pasta controllers em app. Edite-o e encontrará o seguinte:
class HomeController < ApplicationController
end
Modifique acrescentando o que abaixo está em negrito:
class HomeController < ApplicationController
def index
@ola = “Minha primeira aplicação em Rails!”
end
end
Retorne ao browser e aponte para http://localhost:3000/home e sua frase “Minha primeira aplicação em Rails!” aparecerá no browser. Olhando código fonte, verá que apenas a frase aparece, sem nenhuma marcação HTML. Edite seu arquivo index.rhtml em app/views/home e coloque o <%= @ola %> entre tags <h1></h1>. Salve e dê um refresh no browser. Agora sim temos HTML, mas ainda falta coisa.
Perceba que não existem as tags de head que formam um HTML bem escrito. Isso colocamos em outro arquivo rhtml, que será salvo em app/views/layouts/home com o nome de application.rhtml. Faça isso colocando o seguinte conteúdo:
<head><title>Rails rulez!</title></head>
<body>
<%= yield %>
</body>
</html>
Retorne agora ao browser, dê um refresh e veja o código fonte gerado. Perceberá que as tags HTML de estrutura estarão todas lá, com o seu H1 e sua frase contidos entre o body e o /body. Isso significa que o layout é a “casca” do site e que o view é o layout do seu conteúdo. Só nesses poucos passos já se abriram diversas novas possibilidades, não é mesmo??? Layout separado do código sem necessidade de bibliotecas externas!
Vamos, para finalizar, inserir um arquivo CSS para formatar nosso body e nosso elemento H1!
Abra novamente no editor de textos o arquivo application.rhtml que está em app/views/layouts e insira a seguinte linha:
<%= stylesheet_link_tag “default” %>
Crie no próprio bloco de notas do Windows o arquivo default.css e salve em blog/public/stylesheets com o seguinte conteúdo
body{
background-color: #ccc;
}
h1{
color: #c00000;
}
Volte ao browser e dê um refresh! Voilá: uma folha de estilo para controlar a exibição!
Finalizamos por aqui, pois ainda estou estudando! Obviamente que isso é apenas uma introdução ao desenvolvimento com Roby. Tenho certeza que essa linguagem ainda nos trará gratas surpresas conforme formos nos aprofundando.
Qualquer errata, sinta-se à vontade para deixar um comentário informando!
Grande abraço,
Vedovelli
<links>
Apostila em português que estou utilizando para estudos:
http://www.vedsa.com.br/transf/tutorial.pdf
Ruby one-click-installer:
http://rubyforge.org/frs/download.php/12751/ruby185-21.exe
Videos:
http://www.rubyonrails.org/screencasts
</links>