ActiveModel
Rails 3.0’s ActiveModel: How To Give Ruby Classes Some ActiveRecord Magic
を読んで。MerbデベロッパのYehuda Katz(なんて読むんだろ)がRailsの機能のモジュール化的なことをしているらしい。で、その一つにActiveModelがある。
ActiveModelとは
Railsではない、通常のRubyのクラスにActiveModel的な振る舞いをさせることが出来るライブラリ。例えば下記のように、ActiveRecordを継承していないクラスにvalidationの機能をくっつけることが出来る。
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
どういうときにつかえるのか
フォームに入力した結果をDBに入れずにメールで送信するときなんかには使えそうだと思った。