@@ -38,12 +38,17 @@ def adapters
3838
3939 # Adds an adapter 'klass' with 'name' to the 'adapter_map'
4040 # Names are stringified and underscored
41- # @param [Symbol, String] name of the registered adapter
42- # @param [Class] klass - adapter class itself
41+ # @param name [Symbol, String, Class ] name of the registered adapter
42+ # @param klass [Class] adapter class itself, optional if name is the class
4343 # @example
4444 # AMS::Adapter.register(:my_adapter, MyAdapter)
45- def register ( name , klass )
46- adapter_map . update ( name . to_s . underscore => klass )
45+ # @note The registered name strips out 'ActiveModel::Serializer::Adapter::'
46+ # so that registering 'ActiveModel::Serializer::Adapter::Json' and
47+ # 'Json' will both register as 'json'.
48+ def register ( name , klass = name )
49+ name = name . to_s
50+ name . gsub! ( 'ActiveModel::Serializer::Adapter::' . freeze , '' . freeze )
51+ adapter_map . update ( name . underscore => klass )
4752 self
4853 end
4954
@@ -78,7 +83,7 @@ def find_by_name(adapter_name)
7883
7984 # Automatically register adapters when subclassing
8085 def self . inherited ( subclass )
81- ActiveModel ::Serializer ::Adapter . register ( subclass . to_s . demodulize , subclass )
86+ ActiveModel ::Serializer ::Adapter . register ( subclass )
8287 end
8388
8489 attr_reader :serializer , :instance_options
0 commit comments