module JsonapiSwaggerHelpers::Readable

Public Class Methods

included(klass) click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 5
def self.included(klass)
  klass.class_eval do
    attr_reader :node,
                :controller,
                :description,
                :tags,
                :singular
  end
end
new(node, controller, description: nil, tags: [], singular: false) click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 15
def initialize(node, controller, description: nil, tags: [], singular: false)
  @node = node
  @controller = controller
  @description = description || default_description
  @tags = tags
  @singular = singular
end

Public Instance Methods

all_tags() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 59
def all_tags
  tags + payload_tags
end
default_description() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 31
def default_description
  "#{action_name.capitalize} Action"
end
each_association() { |association_name, association_resource| ... } click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 80
def each_association
  types = [jsonapi_type]
  resource_map = util.all_resources(resource, include_directive)
  resource_map.each_pair do |association_name, association_resource|
    resource_type = association_resource.config[:type]
    next if types.include?(resource_type)
    types << resource_type
    yield association_name, association_resource
  end
end
each_stat() { |stat_name, calculations| ... } click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 71
def each_stat
  resource.config[:stats].each_pair do |stat_name, opts|
    calculations = opts.calculations.keys - [:keys]
    calculations = calculations.join(', ')

    yield stat_name, calculations
  end
end
full_description() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 55
def full_description
  "#{description}<br /><br />#{util.sideload_label(include_directive)}"
end
generate() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 112
def generate
  raise 'override me'
end
generate_response_schema!() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 99
def generate_response_schema!
  _self = self

  payloads = util.payloads_for(resource, include_directive.to_hash)
  JsonapiSwaggerHelpers.docs_controller.send(:swagger_schema, response_schema_id) do
    payloads.each do |p|
      property p.name do
        key :'$ref', p.name
      end
    end
  end
end
has_extra_fields?() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 51
def has_extra_fields?
  resource.config[:extra_fields].keys.length > 1
end
has_sideloads?() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 47
def has_sideloads?
  include_directive.keys.length > 0
end
include_directive() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 43
def include_directive
  util.include_directive_for(controller, action_name)
end
jsonapi_type() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 91
def jsonapi_type
  resource.config[:type]
end
operation_id() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 35
def operation_id
  "#{controller.name.gsub('::', '-')}-#{action_name}"
end
payload_tags() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 63
def payload_tags
  util.payload_tags_for(resource, include_directive.to_hash)
end
resource() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 23
def resource
  @resource = controller._jsonapi_compliable
  if @resource.is_a?(Hash)
    @resource = @resource[action_name]
  end
  @resource
end
response_schema_id() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 95
def response_schema_id
  "#{operation_id}_#{action_name}_response"
end
util() click to toggle source
# File lib/jsonapi_swagger_helpers/readable.rb, line 39
def util
  JsonapiSwaggerHelpers::Util
end