From 5e5c0213a771fb6a3f96ed2427bba07c620c92ea Mon Sep 17 00:00:00 2001 From: Adman65 Date: Mon, 12 Dec 2011 10:30:20 +0100 Subject: [PATCH] Refactor serializer class detection --- lib/active_model/serializer.rb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 00a5d591..474b2d9d 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -134,12 +134,9 @@ module ActiveModel class_eval "def #{attr}() object.#{attr} end", __FILE__, __LINE__ end - # if :key is specified without :serializer, then use conventions - # to determine the serializer - if options[:key] && !options[:serializer] - options[:serializer] = const_get("#{options[:key].to_s.camelize.singularize}Serializer") - else - options[:serializer] ||= const_get("#{attr.to_s.singularize.camelize}Serializer") + options[:serializer] ||= begin + serializer_class = (options[:key] || attr).to_s.classify + const_get("#{serializer_class}Serializer") end klass.new(attr, options)