Sha256: 03c7645b33b7ab525c0456e130dea7345284bdb7e61f328a701876af333f292d

Contents?: true

Size: 1.43 KB

Versions: 2

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

# :reek:Attribute
# :reek:TooManyInstanceVariables
module SwaggerDocsGenerator
  # # Configuration to swagger json file
  #
  # This class it's a DSL class. For customize default json file.
  #
  # @example
  #   SwaggerDocsGenerator.configure do |config|
  #     config.swagger = '2.0.0'
  #   end
  #
  #   SwaggerDocsGenerator.config
  #   => #<SwaggerDocsGenerator::Configuration:0x007f8ae49138d8
  #    @swagger='2.0.0'>
  #
  # @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md
  class Configuration
    # Accessors with default value
    attr_accessor :swagger, :cleanning, :base_path, :compress, :sort

    # Accessors without default value
    attr_accessor :schemes, :consumes, :produces, :host, :external_docs,
                  :security, :definitions, :doc_class, :doc_folder

    # Initalize default value (and requried) for json swagger file
    def initialize
      @swagger = '2.0'
      @base_path = '/'
      @cleanning = true
      @compress = false
      @sort = 'tag'
    end
  end

  class << self
    def configure
      block_given? ? yield(config) : config
    end

    def config
      @config ||= Configuration.new
    end

    def file_base
      File.join(@config.doc_folder, @config.doc_class)
    end

    def file_docs
      Dir[File.join(@config.doc_folder, '*.rb')]
    end

    def temporary_folder
      Rails.root.join('tmp', SwaggerDocsGenerator::GEM)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
swagger_docs_generator-0.5.1 lib/swagger_docs_generator/configuration/configuration.rb
swagger_docs_generator-0.5.0.pre.42 lib/swagger_docs_generator/configuration/configuration.rb