module JsonapiSwaggerHelpers::DocsControllerMixin

Public Class Methods

included(klass) click to toggle source
# File lib/jsonapi_swagger_helpers/docs_controller_mixin.rb, line 3
def self.included(klass)
  # Save our controller so we can execute Swagger::Blocks code against it
  JsonapiSwaggerHelpers.docs_controller = klass

  # Add glue code
  klass.send(:include, Swagger::Blocks)
  klass.extend(ResourceMixin) # jsonapi_resource DSL
  klass.extend(ClassMethods) # for predefining payloads

  # Predefine swagger definitions for later reference
  #   * spec payloads define outputs
  #   * strong resources define inputs
  klass.register_payload_definitions!
end

Public Instance Methods

index() click to toggle source

Give Swagger::Blocks what it wants

# File lib/jsonapi_swagger_helpers/docs_controller_mixin.rb, line 43
def index
  self.class.load! unless self.class.loaded?
  render json: Swagger::Blocks.build_root_json([self.class])
end