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
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
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