44
55module JSONAPI
66 module Rails
7- DEFAULT_INFERRER = Hash . new do |h , k |
8- names = k . to_s . split ( '::' )
9- klass = names . pop
10- h [ k ] = [ *names , "Serializable#{ klass } " ] . join ( '::' ) . safe_constantize
11- end
12-
137 class SuccessRenderer
148 def initialize ( renderer = JSONAPI ::Serializable ::Renderer . new )
159 @renderer = renderer
@@ -28,12 +22,12 @@ def render(resources, options, controller)
2822 # @api private
2923 def default_options ( options , controller , resources )
3024 options . dup . tap do |opts |
31- opts [ :class ] ||= DEFAULT_INFERRER
25+ opts [ :class ] ||= controller . jsonapi_class
3226 if ( pagination_links = controller . jsonapi_pagination ( resources ) )
3327 ( opts [ :links ] ||= { } ) . merge! ( pagination_links )
3428 end
3529 opts [ :expose ] = controller . jsonapi_expose . merge! ( opts [ :expose ] || { } )
36- opts [ :jsonapi ] = opts [ :jsonapi_object ] || controller . jsonapi_object
30+ opts [ :jsonapi ] = opts . delete ( :jsonapi_object ) || controller . jsonapi_object
3731 end
3832 end
3933 end
@@ -58,8 +52,7 @@ def render(errors, options, controller)
5852 # @api private
5953 def default_options ( options , controller )
6054 options . dup . tap do |opts |
61- # TODO(lucas): Make this configurable.
62- opts [ :class ] ||= DEFAULT_INFERRER
55+ opts [ :class ] ||= controller . jsonapi_class
6356 unless opts [ :class ] . key? ( :'ActiveModel::Errors' )
6457 opts [ :class ] [ :'ActiveModel::Errors' ] =
6558 JSONAPI ::Rails ::SerializableActiveModelErrors
0 commit comments