@@ -38,12 +38,17 @@ def adapters
38
38
39
39
# Adds an adapter 'klass' with 'name' to the 'adapter_map'
40
40
# 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
43
43
# @example
44
44
# 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 )
47
52
self
48
53
end
49
54
@@ -78,7 +83,7 @@ def find_by_name(adapter_name)
78
83
79
84
# Automatically register adapters when subclassing
80
85
def self . inherited ( subclass )
81
- ActiveModel ::Serializer ::Adapter . register ( subclass . to_s . demodulize , subclass )
86
+ ActiveModel ::Serializer ::Adapter . register ( subclass )
82
87
end
83
88
84
89
attr_reader :serializer , :instance_options
0 commit comments