Sha256: 36439c02eadc46c22882521b98db8149ca1d368aa6ec96755c78f5619a6ae8a5

Contents?: true

Size: 1.96 KB

Versions: 6

Compression:

Stored size: 1.96 KB

Contents

require 'forwardable'
require_relative './groups'
require_relative './versions'
require_relative '../services/open_api_definition_resolver'

module Nexmo
  module OAS
    module Renderer
      module Presenters

        class OpenApiSpecification
          extend Forwardable

          attr_reader :definition_name

          def_delegators :@versions, :current_version, :available_versions
          def_delegators :@groups, :groups

          def initialize(definition_name:, expand_responses:)
            @definition_name  = definition_name
            @expand_responses = expand_responses
            @versions         = Versions.new(definition_name)
            @groups           = Groups.new(definition)
          end

          def display_initialization?
            initialization? && initialization_content && initialization_config
          end

          def initialization?
            File.file? "#{API.oas_path}/../initialization/#{@definition_name}.md"
          end

          def initialization_content
            @initialization_content ||= MarkdownPipeline.new.call(
              File.read("#{API.oas_path}/../initialization/#{@definition_name}.md")
            ) if initialization?
          end

          def initialization_config
            @initialization_config ||= YAML.safe_load(
              File.read("#{API.oas_path}/../initialization/#{@definition_name}.md")
            ) if initialization?
          end

          def errors?
              File.exist?("#{API.oas_path}/../errors/#{@definition_name}.md")
          end

          def definition_errors
            @definition_errors ||= MarkdownPipeline.new.call(
              File.read("#{API.oas_path}/../errors/#{@definition_name}.md")
            ) if errors?
          end

          def definition
            @definition ||= OpenApiDefinitionResolver.find(@definition_name)
          end

          def auto_expand_responses
            @expand_responses
          end
        end

      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
nexmo-oas-renderer-0.2.2 lib/nexmo/oas/renderer/presenters/open_api_specification.rb
nexmo-oas-renderer-0.2.1 lib/nexmo/oas/renderer/presenters/open_api_specification.rb
nexmo-oas-renderer-0.2.0 lib/nexmo/oas/renderer/presenters/open_api_specification.rb
nexmo-oas-renderer-0.1.2 lib/nexmo/oas/renderer/presenters/open_api_specification.rb
nexmo-oas-renderer-0.1.1 lib/nexmo/oas/renderer/presenters/open_api_specification.rb
nexmo-oas-renderer-0.1.0 lib/nexmo/oas/renderer/presenters/open_api_specification.rb