diff options
author | Rob Anderton <rob.anderton@thewebfellas.com> | 2008-08-18 19:13:01 +0100 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-09-10 18:28:47 +0200 |
commit | 2cee51d5c1d143f6fe0096ba6cbd1db1ecbe2d90 (patch) | |
tree | 69385e859aef550418365d4553bebe5a4af5cb77 /activerecord/test/models/customer.rb | |
parent | 7c9851dbb6f841ffbf3ebd16e9f57c04319d3a39 (diff) | |
download | rails-2cee51d5c1d143f6fe0096ba6cbd1db1ecbe2d90.tar.gz rails-2cee51d5c1d143f6fe0096ba6cbd1db1ecbe2d90.tar.bz2 rails-2cee51d5c1d143f6fe0096ba6cbd1db1ecbe2d90.zip |
Added :constructor and :converter options to composed_of and deprecated the conversion block
Signed-off-by: Michael Koziarski <michael@koziarski.com>
Diffstat (limited to 'activerecord/test/models/customer.rb')
-rw-r--r-- | activerecord/test/models/customer.rb | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/activerecord/test/models/customer.rb b/activerecord/test/models/customer.rb index 030bbc6237..e258ccdb6c 100644 --- a/activerecord/test/models/customer.rb +++ b/activerecord/test/models/customer.rb @@ -1,7 +1,8 @@ class Customer < ActiveRecord::Base composed_of :address, :mapping => [ %w(address_street street), %w(address_city city), %w(address_country country) ], :allow_nil => true - composed_of(:balance, :class_name => "Money", :mapping => %w(balance amount)) { |balance| balance.to_money } + composed_of :balance, :class_name => "Money", :mapping => %w(balance amount), :converter => Proc.new { |balance| balance.to_money } composed_of :gps_location, :allow_nil => true + composed_of :fullname, :mapping => %w(name to_s), :constructor => Proc.new { |name| Fullname.parse(name) }, :converter => :parse end class Address @@ -53,3 +54,20 @@ class GpsLocation self.latitude == other.latitude && self.longitude == other.longitude end end + +class Fullname + attr_reader :first, :last + + def self.parse(str) + return nil unless str + new(*str.to_s.split) + end + + def initialize(first, last = nil) + @first, @last = first, last + end + + def to_s + "#{first} #{last.upcase}" + end +end
\ No newline at end of file |