Sha256: 46052774847a7ea44b06d0eb42306fc0261bfa433135c1e2ddfb7b8b01c5aab6

Contents?: true

Size: 1.03 KB

Versions: 4

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

require 'swagger_docs_generator/parser/model'

module SwaggerDocsGenerator
  # # Metadata generated
  #
  # Generate metadata for block definition in swagger file
  #
  # @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#definitions-object
  class MetadataDefinition < MetadataController
    def initialize
      super
      @model = nil
    end

    def construct_swagger_file
      { definitions: find_models }
    end

    private

    # :reek:NilCheck
    def find_models
      hash = {}
      controllers.each do |controller|
        data = each_controller(controller)
        hash.merge!(data) unless data.nil?
      end
      hash
    end

    def each_controller(controller)
      @model = Model.new(controller)
      contruct_hash
    rescue NameError => message
      puts "Error model name : #{message.name}"
    end

    def contruct_hash
      {
        @model.name => {
          type: 'object',
          properties: @model.attribute_properties
        }
      }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
swagger_docs_generator-0.2.0.pre.11 lib/swagger_docs_generator/metadata/definition.rb
swagger_docs_generator-0.2.0.pre.10 lib/swagger_docs_generator/metadata/definition.rb
swagger_docs_generator-0.2.0.pre.9 lib/swagger_docs_generator/metadata/definition.rb
swagger_docs_generator-0.1.2 lib/swagger_docs_generator/metadata/definition.rb