From efa22d9d443e52b3030163addbda1d85e988a430 Mon Sep 17 00:00:00 2001 From: Gauthier Delacroix Date: Fri, 12 Sep 2014 18:56:51 +0200 Subject: [PATCH] Add plural_default_root config option --- lib/active_model/serializer.rb | 5 ++++- test/unit/active_model/serializer/config_test.rb | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index dd82e976..e8f52e57 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -72,7 +72,10 @@ end alias root= _root= def root_name - name.demodulize.underscore.sub(/_serializer$/, '') if name + if name + root_name = name.demodulize.underscore.sub(/_serializer$/, '') + CONFIG.plural_default_root ? root_name.pluralize : root_name + end end def attributes(*attrs) diff --git a/test/unit/active_model/serializer/config_test.rb b/test/unit/active_model/serializer/config_test.rb index b297f998..bd9ae48a 100644 --- a/test/unit/active_model/serializer/config_test.rb +++ b/test/unit/active_model/serializer/config_test.rb @@ -78,6 +78,9 @@ module ActiveModel assert !association.embed_objects? assert association.embed_in_root assert_equal :lower_camel, association.key_format + assert_equal 'post', PostSerializer.root_name + CONFIG.plural_default_root = true + assert_equal 'posts', PostSerializer.root_name ensure PostSerializer._associations[:comments] = old_association CONFIG.clear