From 506739d4fb5e94d43dc1ce22fc3bd78c878af1b6 Mon Sep 17 00:00:00 2001 From: Rob McFadzean Date: Fri, 10 Jul 2015 11:23:55 +0930 Subject: [PATCH 1/2] Added a (failing) test for when inflecting API --- test/adapter_test.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/adapter_test.rb b/test/adapter_test.rb index 7268c386..3349d8a7 100644 --- a/test/adapter_test.rb +++ b/test/adapter_test.rb @@ -38,6 +38,15 @@ module ActiveModel adapter = ActiveModel::Serializer::Adapter.create(@serializer, { adapter: :json_api}) assert_equal ActiveModel::Serializer::Adapter::JsonApi, adapter.class end + + def test_inflected_adapter_class_for_known_adapter + ActiveSupport::Inflector.inflections(:en){|inflect| inflect.acronym 'API' } + klass = ActiveModel::Serializer::Adapter.adapter_class(:json_api) + + ActiveSupport::Inflector.inflections.acronyms.clear + + assert_equal ActiveModel::Serializer::Adapter::JsonApi, klass + end end end end From 4359026c0edc351edb5b38c73573bea0dc0ca7c0 Mon Sep 17 00:00:00 2001 From: Benjamin Fleischer Date: Fri, 17 Jul 2015 14:08:50 -0500 Subject: [PATCH 2/2] Handle inflecting api to s/API/Api without side-effects --- lib/active_model/serializer/adapter.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/active_model/serializer/adapter.rb b/lib/active_model/serializer/adapter.rb index 852fa53e..7c061434 100644 --- a/lib/active_model/serializer/adapter.rb +++ b/lib/active_model/serializer/adapter.rb @@ -33,7 +33,8 @@ module ActiveModel end def self.adapter_class(adapter) - "ActiveModel::Serializer::Adapter::#{adapter.to_s.classify}".safe_constantize + adapter_name = adapter.to_s.classify.sub("API", "Api") + "ActiveModel::Serializer::Adapter::#{adapter_name}".safe_constantize end def fragment_cache(*args) @@ -42,7 +43,7 @@ module ActiveModel private - def cache_check(serializer) + def cache_check(serializer) @cached_serializer = serializer @klass = @cached_serializer.class if is_cached?