1- require 'active_model/serializer/adapter/fragment_cache'
2-
31module ActiveModel
42 class Serializer
53 class Adapter
64 extend ActiveSupport ::Autoload
7- autoload :Json
5+ require 'active_model/serializer/adapter/json'
6+ require 'active_model/serializer/adapter/json_api'
87 autoload :FlattenJson
98 autoload :Null
10- autoload :JsonApi
9+ autoload :FragmentCache
10+
11+ def self . create ( resource , options = { } )
12+ override = options . delete ( :adapter )
13+ klass = override ? adapter_class ( override ) : ActiveModel ::Serializer . adapter
14+ klass . new ( resource , options )
15+ end
16+
17+ def self . adapter_class ( adapter )
18+ adapter_name = adapter . to_s . classify . sub ( "API" , "Api" )
19+ "ActiveModel::Serializer::Adapter::#{ adapter_name } " . safe_constantize
20+ end
21+
22+ ##### AbstractAdapter
1123
1224 attr_reader :serializer
1325
@@ -26,17 +38,6 @@ def as_json(options = nil)
2638 hash
2739 end
2840
29- def self . create ( resource , options = { } )
30- override = options . delete ( :adapter )
31- klass = override ? adapter_class ( override ) : ActiveModel ::Serializer . adapter
32- klass . new ( resource , options )
33- end
34-
35- def self . adapter_class ( adapter )
36- adapter_name = adapter . to_s . classify . sub ( "API" , "Api" )
37- "ActiveModel::Serializer::Adapter::#{ adapter_name } " . safe_constantize
38- end
39-
4041 def fragment_cache ( *args )
4142 raise NotImplementedError , 'This is an abstract method. Should be implemented at the concrete adapter.'
4243 end
@@ -94,6 +95,7 @@ def include_meta(json)
9495 json [ meta_key ] = meta if meta
9596 json
9697 end
98+ ##### AbstractAdapter
9799 end
98100 end
99101end
0 commit comments