Publicado por Rafael Rosa em 14 de January de 2010
ActiveModel do Rails 3.0 – Coloque um pouco da mágica do ActiveRecord nas suas classes Ruby
Um dos maiores benefícios de se trazer o criador do Merb, Yehuda Katz, para a equipe do Rails 3.0 é sua incanssável luta para extrair todas as "habilidades mágicas" da estrutura monolítica atual do Rails para módulos separados e mais fáceis de manter. Um exemplo é o ActiveModel, uma nova biblioteca que oferece funcionalidades relacionadas a models do ActiveRecord, sem se prender às dependências de banco de dados.
Faça com que qualquer classe Ruby se comporte como um model do Rails
Ao extrair as funcionalidades de model do ActiveRecord, o ActiveModel torna possível adicionar esses comportamentos a qualquer classe Ruby, sem depender de nenhum banco de dados. Em seu último artigo, ActiveModel: Faça qualquer objeto Ruby se parecer com o ActiveRecord (em inglês), Yehuda mostra como criar objetos que tem funcionalidades de validação, serialização, callbacks, controle de alterações, internacionalização, atributos, observers e muitas outras funcionalidades do ActiveRecord.
Exemplo de código
Pegamos o exemplo principal do Yehuda de usar o ActiveModel em uma classe que não pertence ao Rails e o ampliamos para mostrar como ele seria utilizado:
require 'active_model' class Person include ActiveModel::Validations validates_presence_of :first_name, :last_name attr_accessor :first_name, :last_name def initialize(first_name, last_name) @first_name, @last_name = first_name, last_name end end a = Person.new("Fred", nil) a.valid? # => false a.last_name = "Flintstone" a.valid? # => true
Instalando o ActiveModel
Se você se interessou pelo ActiveModel mas não pelo Rails 3.0, saiba que é possível instalá-lo de maneira razoavelmente fácil (mesmo que ainda não seja tão fácil quanto instalar uma gem):
- Crie um diretório temporário
git clone git://github.com/rails/rails.gitcd railsrake gemgem install activesupport/pkg/activesupport-3.0.pre.gemgem install activemodel/pkg/activemodel-3.0.pre.gem
Depois de executar esses passo o exemplo acima deve funcionar sem problemas. Se você preferir brincar com o Rails 3.0 pre, dê uma olhada no artigo que o Yehuda escreveu sobre como baixar e criar uma nova aplicação com ele, mesmo sem instalá-lo como gem. Você também pode dar uma olhada nas experiências feitas pelo José Valim e pelo Fábio Akita com o Rails 3 pre, vale a pena ver como eles o estão estudando.

Clique aqui para adicionar ao del.icio.us

14 de January de 2010 às 17:49
[...] This post was mentioned on Twitter by Ruby Inside Brasil, Tino Gomes, Leonardo Rodrigues, rscarvalho, Rafa Alves and others. Rafa Alves said: RT @rubyinside_br Novo artigo: ActiveModel Rails 3.0 - Coloque um pouco da mágica do ActiveRecord nas suas classes Ruby http://bit.ly/5gEeLm [...]
01 de September de 2010 às 7:10
[...] Atualizando para o Rails 3: Parte 1 e Parte 2 Usando ruby-debug com Rails 3.0 no Ruby 1.9 ActiveModel do Rails 3.0 – Coloque um pouco da mágica do ActiveRecord nas suas classes Ruby Controllers no Rails 3 Rails 3: Introdução a Javascript Não-Obstrutivo e Responders De ‘Rails [...]