class JSONAPI::Rails::SuccessRenderer
@private
Public Class Methods
new(renderer = JSONAPI::Serializable::Renderer.new)
click to toggle source
# File lib/jsonapi/rails/renderer.rb, line 7 def initialize(renderer = JSONAPI::Serializable::Renderer.new) @renderer = renderer freeze end
Public Instance Methods
render(resources, options, controller)
click to toggle source
# File lib/jsonapi/rails/renderer.rb, line 13 def render(resources, options, controller) options = default_options(options, controller, resources) @renderer.render(resources, options) end
Private Instance Methods
default_options(options, controller, resources)
click to toggle source
rubocop:disable Metrics/MethodLength, Metrics/AbcSize
# File lib/jsonapi/rails/renderer.rb, line 22 def default_options(options, controller, resources) options.dup.tap do |opts| opts[:class] ||= controller.jsonapi_class opts[:cache] ||= controller.jsonapi_cache opts[:links] = controller.jsonapi_links .merge!(controller.jsonapi_pagination(resources)) .merge!(opts[:links] || {}) opts[:expose] = controller.jsonapi_expose.merge!(opts[:expose] || {}) opts[:fields] ||= controller.jsonapi_fields opts[:include] ||= controller.jsonapi_include opts[:jsonapi] = opts.delete(:jsonapi_object) || controller.jsonapi_object opts[:meta] ||= controller.jsonapi_meta end end