Sha256: cbe10ba14da55db0a69de2c7fc37bd51beb6416376064314fb0012b7448b5017

Contents?: true

Size: 737 Bytes

Versions: 12

Compression:

Stored size: 737 Bytes

Contents

module JsonapiCompliable
  module Util
    class RenderOptions
      def self.generate(object, query_hash, overrides = {})
        resolved = object.respond_to?(:resolve) ? object.resolve : object

        options            = {}
        options[:include]  = query_hash[:include]
        options[:jsonapi]  = resolved
        options[:fields]   = query_hash[:fields]
        options.merge!(overrides)
        options[:meta]   ||= {}
        options[:expose] ||= {}
        options[:expose][:extra_fields] = query_hash[:extra_fields]

        if object.respond_to?(:resolve_stats)
          stats = object.resolve_stats
          options[:meta][:stats] = stats unless stats.empty?
        end

        options
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jsonapi_compliable-0.6.4 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.6.3 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.6.2 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.6.1 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.6.0 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.5.7 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.5.6 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.5.5 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.5.4 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.5.3 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.5.2 lib/jsonapi_compliable/util/render_options.rb
jsonapi_compliable-0.5.1 lib/jsonapi_compliable/util/render_options.rb