File tree Expand file tree Collapse file tree 1 file changed +13
-7
lines changed Expand file tree Collapse file tree 1 file changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -201,14 +201,20 @@ def serializer_from_options(options)
201
201
202
202
private
203
203
204
- def self . get_serializer_for ( klass )
205
- serializer_class_name = " #{ klass . name } Serializer"
206
- serializer_class = serializer_class_name . safe_constantize
204
+ def self . serializers_cache
205
+ @serializers_cache ||= Threadsafe :: Cache . new
206
+ end
207
207
208
- if serializer_class
209
- serializer_class
210
- elsif klass . superclass
211
- get_serializer_for ( klass . superclass )
208
+ def self . get_serializer_for ( klass )
209
+ serializers_cache . fetch_or_store ( klass ) do
210
+ serializer_class_name = "#{ klass . name } Serializer"
211
+ serializer_class = serializer_class_name . safe_constantize
212
+
213
+ if serializer_class
214
+ serializer_class
215
+ elsif klass . superclass
216
+ get_serializer_for ( klass . superclass )
217
+ end
212
218
end
213
219
end
214
220
You can’t perform that action at this time.
0 commit comments