quinta-feira, 18 de dezembro de 2008

Usando Brazilian Rails

Quem está iniciando em Ruby on Rails deve ser perguntar:

Como traduzir as mensagens de erros geradas por um model de inglês para português???

Uma das formas de se fazer isso, e a que eu acredito ser a mais simples, é instalar o plugin Brazilian Rails. Entre outras funcionalidades, como validação de cpf e conversões monetárias para o real, este plugin traduz as mensagens de erros.

Como instalar?
  gem install brazilian-rails
Depois adicione require 'brazilian_rails' no final do arquivo environment.rb que está na pasta config. Após, reinicie o servidor.

terça-feira, 16 de dezembro de 2008

Duck Typing

O método de tipagem dinâmica Duck Typing, utilizado pela linguagem Ruby, baseia-se nesta premissa:

"If it walks like a duck and quacks like a duck, I would call it a duck"
"Se anda como um pato e faz 'quack' como um pato, eu posso chamar isso de um pato"


Logo, Ruby preocupa-se mais com os métodos de um objeto que são chamados do que o tipo do objeto em si. Por exemplo, se existir uma classe Pato, com métodos quack() e anda(), e uma outra classe chamada Marreco, com métodos com o mesmo nome da classe Pato, e uma função que simplesmente dado um objeto como argumento invoca os métodos quack() e anda(), não importa se objeto passado como argumento para a função será da classe Pato ou Marreco. O que definirá que a semântica é válida é que ambos os objetos responderão aos métodos quack() e anda(). Isso difere muito de outras linguagens, como C++, que não permitiriam isso a menos de polimorfismo e herança.

Exemplo:

class Pato
_def quack
__puts "Quack do Pato!"
_end
_def anda
__puts "O pato andou!"
_end
end


class Marreco
_def quack
__puts "Quack do Marreco!"
_end
_def anda
__puts "O marreco andou!"
_end
end

# Note que não há declaração de que tipo é o objeto passado como argumento.
# O que será levado em conta é como o objeto responde aos métodos que são chamados e assim será realizada a inferência de tipo.
def chama( objeto )
_objeto.quack
_objeto.anda
end

p = Pato.new
m = Marreco.new
chama(p)
chama(m)

Produz como resultado:
Quack do Pato!
O pato andou!
Quack do Marreco!
O Marreco andou!

Assim, uma linguagem com tipagem dinâmica do tipo duck typing assume que se um objeto responde a uma chamada de método característica de um outro tipo de objeto, este primeiro pode ser encarado como sendo do segundo tipo.

Linguagem Ruby - Descrição

Ruby é a linguagem utilizada para implementar o framework Ruby on Rails. Ela foi criada pelo japonês Yukihiro Matsumoto e desenvolvida durante a década de 90. Foi inspirada em Perl e Smalltalk. É uma linguagem script e interpretada, totalmente orientada a objetos, ou seja, não possui tipos primitivos e 'tudo é um objeto'. Possui tipagem dinâmica e utiliza duck typing para fazer a inferência de tipo em tempo de execução. É uma linguagem multi-paradigma, já que suporta programação funcional, orientada a objetos, imperativa e reflexiva. O número de programadores Ruby têm crescido em todo o mundo e têm se tornado muito popular entre desenvolvedores web por causa do Ruby on Rails. Sites onde você pode aprender mais:

segunda-feira, 15 de dezembro de 2008

Ruby on Rails

Atualmente muitos estão apostando na migração dos sistemas comerciais existentes para sistemas de comércio eletrônico. Quem não experimentou comprar um produto no conforto do seu lar com apenas um click? Muitos têm feito isso! E os que não fizeram gostariam de ter feito. As empresas notaram que esse é um nicho de mercado extremamente rentável e têm investido muito em e-commerce. Qual montadora de carros que não vende seus automóveis on-line? Qual empresa de médio porte que não possui um portifólio na internet? Entretanto, desenvolver sistemas web seguros e atraentes para o usuário final não é um trabalho simples. Hoje se fala muitos nos frameworks de trabalho, que agregam classes e funções comumente utilizadas para facilitar o desenvolvimento. Entretanto, poucos frameworks chamaram tanto a atenção quanto o Ruby on Rails. Por quê? Primeiro, a linguagem Ruby é uma linguagem extremamente simples e voltada para produção, ou seja, você faz mais codificando menos. Totalmente orientada a objetos e com uma sintaxe elegante e fácil de se ler - reler o código para dar manutenção não é um problema. Segundo, Rails adota convenção ao invés de configuração. Você não necessitará configurar n arquivos diferentes, onde n > "limite da sua paciência", para fazer com que sua aplicação comece a rodar na web. Além disso, existem diversos outros motivos que serão citados nos próximos posts. Mas, tenha certeza que o Rails vai te colocar no trilho certo do desenvolvimento web.