aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models/developer.rb
diff options
context:
space:
mode:
authorSteve Klabnik <steve@steveklabnik.com>2012-06-15 11:04:43 +0200
committerSteve Klabnik <steve@steveklabnik.com>2012-06-18 15:38:51 -0400
commit44b313bc4e3762da64dde7894548f81c595147de (patch)
treebf2485313247567c13f0a4e29eb7ab06cafe2d85 /activerecord/test/models/developer.rb
parenta8e22aeadcf53a30893fbfbf6d446d504bd87b67 (diff)
downloadrails-44b313bc4e3762da64dde7894548f81c595147de.tar.gz
rails-44b313bc4e3762da64dde7894548f81c595147de.tar.bz2
rails-44b313bc4e3762da64dde7894548f81c595147de.zip
Deprecating composed_of in ActiveRecord
This feature adds a lot of complication to ActiveRecord for dubious value. Let's talk about what it does currently: class Customer < ActiveRecord::Base composed_of :balance, :class_name => "Money", :mapping => %w(balance amount) end Instead, you can do something like this: def balance @balance ||= Money.new(value, currency) end def balance=(balance) self[:value] = balance.value self[:currency] = balance.currency @balance = balance end Since that's fairly easy code to write, and doesn't need anything extra from the framework, if you use composed_of today, you'll have to add accessors/mutators like that. This feature will be removed in Rails 4.
Diffstat (limited to 'activerecord/test/models/developer.rb')
-rw-r--r--activerecord/test/models/developer.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/test/models/developer.rb b/activerecord/test/models/developer.rb
index 4dc9fff9fd..7ff769f0bf 100644
--- a/activerecord/test/models/developer.rb
+++ b/activerecord/test/models/developer.rb
@@ -73,7 +73,9 @@ end
DeveloperSalary = Struct.new(:amount)
class DeveloperWithAggregate < ActiveRecord::Base
self.table_name = 'developers'
- composed_of :salary, :class_name => 'DeveloperSalary', :mapping => [%w(salary amount)]
+ ActiveSupport::Deprecation.silence do
+ composed_of :salary, :class_name => 'DeveloperSalary', :mapping => [%w(salary amount)]
+ end
end
class DeveloperWithBeforeDestroyRaise < ActiveRecord::Base