From 6e886c0045952d3afa4483522981a1d816fb1777 Mon Sep 17 00:00:00 2001 From: Benjamin Fleischer Date: Tue, 8 Sep 2015 23:05:32 -0500 Subject: [PATCH] Use Adapter.const_get instead of safe_constantize (Thanks to sandstrom for the reference to ActiveJob::QueueAdapters https://github.com/rails/rails/blob/a11571cec3213753d63ac3e6b4bb3b97fe2594a6/activejob/lib/active_job/queue_adapters.rb#L123-L133 --- lib/active_model/serializer/adapter.rb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/active_model/serializer/adapter.rb b/lib/active_model/serializer/adapter.rb index 093dc3f86..98987bda8 100644 --- a/lib/active_model/serializer/adapter.rb +++ b/lib/active_model/serializer/adapter.rb @@ -60,11 +60,7 @@ def lookup(adapter) register(adapter_name, adapter_class) adapter_class } - rescue ArgumentError => e - failure_message = - "Unknown adapter: #{adapter.inspect}. Valid adapters are: #{adapters}" - raise UnknownAdapterError, failure_message, e.backtrace - rescue NameError => e + rescue NameError, ArgumentError => e failure_message = "NameError: #{e.message}. Unknown adapter: #{adapter.inspect}. Valid adapters are: #{adapters}" raise UnknownAdapterError, failure_message, e.backtrace @@ -73,7 +69,7 @@ def lookup(adapter) # @api private def find_by_name(adapter_name) adapter_name = adapter_name.to_s.classify.tr('API', 'Api') - "ActiveModel::Serializer::Adapter::#{adapter_name}".safe_constantize or # rubocop:disable Style/AndOr + ActiveModel::Serializer::Adapter.const_get(adapter_name.to_sym) or # rubocop:disable Style/AndOr fail UnknownAdapterError end private :find_by_name