Blog do Hollander :: RoR de leigo para leigos

29 abril, 2008

Dicas rápidas de RADRails I – Novo Projeto

Filed under: Ruby / Rails — Tags: — hollanderramos @ 22:06

Como dito aqui RADRails é uma excelente IDE de desenvolvimento para RoR (Ruby on Rails). Nesta pequena série de artigos eu vou explicar rapidamente alguns dos comandos básicos desta ferramenta.

Vamos começar a série com os comandos para criar um novo projeto.

Utilize o menu: File > New > Project e abra a pasta Rails. Selecione a opção RailsProject e clique no botão Next.
Atalho: Pressione simultaneamente as teclas ALT+SHIFT+N, depois tecle R.

Na nova tela que abriu, digite o nome do seu projeto no campo Project Name. Você pode definir a localização para armazenamento do projeto ou optar pela localização padrão. Para tanto selecione o campo Use default location. O campo só é editável quando a localização padrão não está selecionada.

No grupo options (opções), mantenha a opção Generate Rails application skeleton habilitada. Habilitado toda a estrutura de pastas e arquivos serão automaticamente criados.

Selecione o tipo database (banco de dados) que você está trabalhando e o Rails version (versão do Rails) para desenvolvimento. Salvo rara exceção, a opção latest é a escolha.

Create a WEBrick server e/ou Mongrel server estas opções servem para ativar a criação do servidor host da aplicação. WEBrick é o servidor padrão que vem junto com o Ruby. É uma boa opção quando em fase de testes e desenvolvimento da aplicação. Já o Mongrel possui maior performance sendo escrito em Ruby e desenvolvido para o Rails. É a melhor opção para produção.
Selecione a opção Automatic start server after project is created para ativar o servidor assim que o projeto for criado. Caso contrário, você terá que iniciar manualmente.
Disable table pluralization desativa a convenção de pluralização dos métodos. Para saber como a pluralização trabalha veja o post sobre este assunto. Clique no botão next para completar a criação do projeto.

Para abrir a perspectiva de desenvolvimento em Rails, selecione no menu:

Window, Open Pespective, Other… selecionando RadRails na janela que foi exibida.

Por hoje é só. No próximo artigo vamos conhecer as guias Servers, Generators, Rake Tasks e Console.

25 abril, 2008

Guias de referência rápida

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 21:13

Fuçando na web me deparei com estas preciosidades:Rails Migrations Cheatsheet 1.2.0 e Form Helpers Cheatsheet 1.2.0. Ambos devidamente impressos e colados estrategicamente ao lado da mesa. 😉

24 abril, 2008

Programar em inglês ou desativar a pluralização?

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 21:35

Em um outro post eu comentei sobre como conhecer bem as convenções do Rails. Bem, este post irá aprofundar um pouco mais no assunto ao abordar as pluralizações.

Pluralização é uma das convenções do Rails para quando você cria por exemplo, um modelo. Por “padrão”, o Rails se encarregará de criar toda a estrutura necessária ao modelo, então o modelo deve ser um nome no singular, a tabela criada estará no plural, o modelo estará no singular, mas com a primeira letra capitalizada (maiúscula), etc.

Esta convenção é de fato uma mão na roda, porém ela só é efetiva quando desenvolvemos usando o inglês. Quando aplicado a gramática portuguesa, ela se torna um problema já que Rails não tem suporte a outras línguas.

A tabela abaixo demonstra a pluralização do modelo carro para todos os métodos gerados pelo Rails:

Método  	Resultado
camelize 	Carro
classify 	Carro
demodulize 	carro
foreign_key 	carro_id
humanize 	Carro
pluralize 	carros
singularize 	carro
tableize 	carros
titleize 	Carro
underscore 	carro

Tudo lindo correto? Errado. Vamos pluralizar agora o modelo injeção:

A primeira coisa é eliminar o cedilha e acentuações o que resulta em injecao:

Método  	Resultado
camelize 	Injecao
classify 	Injecao
demodulize 	injecao
foreign_key 	injecao_id
humanize 	Injecao
pluralize 	injecaos
singularize 	injecao
tableize 	injecaos
titleize 	Injecao
underscore 	injecao

Em vermelho o problema, Rails não reconhece a gramática portuguesa, logo a pluralização não resulta na forma correta injecoes (injeções).

Para verificar como o Rails trabalha com a pluralização visite o: nubyonrails.

Existem maneiras de desativar a pluralização e fazer a programação “na marra”, mas isso gera um custo adicional desnecessário ao desenvolvedor além de quebrar o conceito do framework que é o de focar o desenvolvimento apenas naquilo que é fundamental.

E, traduzindo o modelo, não irá garantir que os campos que são controlados pelo Rails como “id”, “created_at”, “updated_at” entre outros, também serão traduzidos, ou seja, você terá que mantê-los ou novamente, dedicar tempo a esta tarefa.

Por fim, qual dos códigos abaixo é o de mais fácil compreensão?

1: @liner = Liner.find_by_code "001"
2: @liner = Liner.find_by_codigo "001"
3: @armador = Armador.find_by_code "001"
4: @armador = Armador.find_by_codigo "001"

Se você domina o inglês, obviamente irá optar pela primeira opção. Se você é adepto do português irá escolher a opção 4 (depois de desabilitar a pluralização), só que isso implica em ter o seu código funções pseudo-traduzidas pois o “find_by” não é traduzido. Ah! Mas então, para evitar isso, você pode partir para a solução 3, ter todos os campos escritos em inglês, o que não parece lógico já que não existe nenhum grande esforço adicional em também ter o modelo traduzido.

Portanto, a melhor solução é continuar usando a pluralização e traduzir seus campos para o inglês. Quem sabe, com o tempo que você vai ganhar no desenvolvimento, você consegue finalmente se inscrever naquele curso de inglês? 🙂

23 abril, 2008

Recomendação de leitura

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 0:00

Nem só de Internet vive o desenvolvedor. Livros são essenciais para complementar os estudos em uma linguagem. Meu atual livro de cabeceira é o Rails Solutions – Ruby on Rails Made Easy de Justin Williams ainda sem tradução para o português. De leitura fácil e com exemplos práticos ele aborda os princípios básicos do RoR, passando pela introdução a linguagem, princípios e fundamentos, instalação em diversas plataformas, recomendação de ferramentas de edição, síntaxe básica, classes e objetos, modelos, migrações, controllers, visões, AJAX, autenticações, plug-ins, processo de controle de transferência para a produção com o Capistrano e finalmente como bônus, a criação e controle testes.

O livro não aborda a última versão do Rails (2). Poucos comandos precisam ser adaptados, mas nada muito complexo. Uma rápida visita ao Google resolve as incompatibilidades.

Conteúdo
Introduction to Ruby on Rails
Installing Rails
Ruby for Rails Developers
Getting Started with Rails
More Advanced Rails
Formatting Data
Introduction to Ajax
Bringing Forms to Life with Ajax
Uploading Files and Sending Attachments
User Authentication and Session Management
Customizing Rails Views
Using Rails Plug-ins and Engines
Deploying with Capistrano

Uma prévia do livro pode ser visto no Google Books.

Maiores infomações, visite o site do Amazon.

21 abril, 2008

Muita atenção nas convenções

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 20:39

Um dos motivos do Rails ser tão produtivo é o fato dele trabalhar com convenções. Com isso, abstrai-se do desenvolvedor a necessidade desta tarefa, ganhando – muito – tempo. Dentre as convenções, uma refere-se a criação dos atributos de um modelo, gerando na migração, os campos nas tabelas. Note esta migração criada por mim:


create_table :liners do |t|
t.column :Codigo, :string, :limit => 3
t.column :Descricao, :string, :limit => 30
t.timestamps
end

add_index(:liners, :Codigo, :unique => true)

Se você já é um veterano de Rails, já deve ter percebido o que está errado. Ok. pare por aqui e pule para o próximo post. Agora, se você é como eu, um novato de pouco mais de 48h na linguagem, continue lendo.

A migração funcionou bem, a tabela foi criada, assim como os campos. O sistema também correspondeu as expectativas até que eu acrescentei a seguinte validação na classe:

validates_uniqueness_of :Codigo

Esta validação evita a criação de registros que contenham o mesmo “código” como valor. Porém, sempre que eu tentava testar o formulário com esta validação habilitada, lá vinha uma mensagem de exceção StatementError de meu Banco de Dados, informando que a coluna codigo não existe.

Como não? Ela (a coluna) está lá! Certo? Outras validações como validates_presence_of :Codigo também está lá na classe e funciona! O que está errado?
A resposta é que não observei a convenção. Os campos no Rails devem estar em totalmente em minúsculas.

Uma rápida alteração no Banco de Dados e em todas as partes da aplicação para codigo e tudo voltou ao normal.

Ainda existe um outro problema nesta minha codificação. O fato dos atributos estarem escritos em português ao invés de inglês, mas isso é um problema para ser discutido em outro momento.

Ou seja, as convenções são uma mão na roda no ganho da produtividade, porém exige do desenvolvedor (principalmente o iniciante) o seu preço: Conhecê-las intimamente.

RadRails

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 13:00

IDE Radrails

RadRails é uma ferramenta IDE (Integrated Development Enviroment) com base em Eclipse que pode ser customizada para o desenvolvimento de aplicações em Rails. É uma ferramenta complexa, mas que pode facilitar muito o aprendizado, principalmente se você já está familiarizado com o desenvolvimento por IDE.

A ferramenta pode ser baixada em www.radrails.org.

Instalação do Rails debaixo de um Proxy

Filed under: Ruby / Rails — Tags:, , , — hollanderramos @ 0:38

A dica a seguir é para sistemas Windows.

Uma vez baixado e instalado o Ruby, normalmente um dos próximos passos é a instalação do Rails. Se você estiver numa rede que exige passar por um Proxy para acessar a Internet, provavelmente receberá como resposta um erro após o comando:

gem install rails --include-dependencies

Para que o gem reconheça o servidor do proxy digite no prompt do DOS:

set http_proxy=http://endereço IP:Porta

onde: Endereço IP é o endereço do Proxy e Porta o número do serviço HTTP.

Feito isso, execute o comando de instalação do Rails novamente e seja feliz 😉

Bem vindo ao mundo!

Filed under: Ruby / Rails — Tags:, , — hollanderramos @ 0:16

Todo desenvolvedor de sistemas conhece bem esta frase: Bem vindo ao mundo ou Hello world. Normalmente usamos estas frases em exemplos e testes quando estamos aprendendo uma nova linguagem de programação ou utilizando novos programas, quase como se fosse um batismo, um ritual. Mantendo a tradição, aqui não poderia ser diferente, então o primeiro post é isso, um teste para mim.

Porém, para não ficar só no tradicional, vou aproveitar para explicar a finalidade deste blog. Estou, nas horas vagas, aprendendo uma nova linguagem de programação: Ruby e o framework Rails. Ao longo da minha vida profissional, sempre que aprendi uma nova linguagem, esbarrei em várias pedras pelo caminho. Cada pedra nada mais é do que um desafio a ser superado até o domínio completo da linguagem. Algumas destas pedras são fáceis de resolver já outros podem demorar dias e dias entre pesquisas, leituras e trocas de informações em fóruns. Daí surgiu a idéia: Se eu, um desenvolvedor auto-didata tenho estes problemas, provavelmente outros também o tem, mas não necessariamente precisarão ter que fazer o mesmo caminho que eu.

Sendo assim, este blog tem a modesta intenção de relatar como remover estas pedras, ou seja, reportar os desafios encontrados e as formas de contorná-los. Minha esperança é que com isso, futuros novos desenvolvedores ou curiosos em programação Ruby on Rails (RoR) possam utilizar este blog como uma referência para facilitar a remoção destas pedras.

Por enquanto é isso. Sucesso a todos.

Crie um website ou blog gratuito no WordPress.com.