1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Refactor aggregation writer method

Only constantize class_name once.
This commit is contained in:
Carlos Antonio da Silva 2012-05-21 18:34:31 -03:00
parent f260dc53be
commit d5d9a281aa
2 changed files with 3 additions and 5 deletions

View file

@ -242,10 +242,9 @@ module ActiveRecord
def writer_method(name, class_name, mapping, allow_nil, converter)
define_method("#{name}=") do |part|
unless part.is_a?(class_name.constantize) || converter.nil? || part.nil?
part = converter.respond_to?(:call) ?
converter.call(part) :
class_name.constantize.send(converter, part)
klass = class_name.constantize
unless part.is_a?(klass) || converter.nil? || part.nil?
part = converter.respond_to?(:call) ? converter.call(part) : klass.send(converter, part)
end
if part.nil? && allow_nil

View file

@ -1,5 +1,4 @@
class Customer < ActiveRecord::Base
cattr_accessor :gps_conversion_was_run
composed_of :address, :mapping => [ %w(address_street street), %w(address_city city), %w(address_country country) ], :allow_nil => true