Class: Openapi3Parser::SourceInput

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi3_parser/source_input.rb,
lib/openapi3_parser/source_input/raw.rb,
lib/openapi3_parser/source_input/url.rb,
lib/openapi3_parser/source_input/file.rb,
lib/openapi3_parser/source_input/resolve_next.rb,
lib/openapi3_parser/source_input/string_parser.rb

Overview

An abstract class which is used to provide a foundation for classes that represent the different means of input an OpenAPI document can have. It is used to represent the underlying source of the data which is used as a source within an OpenAPI document.

Direct Known Subclasses

File, Raw, Url

Defined Under Namespace

Classes: File, Raw, ResolveNext, StringParser, Url

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSourceInput



23
24
25
26
27
28
29
# File 'lib/openapi3_parser/source_input.rb', line 23

def initialize
  return if access_error

  @contents = parse_contents
rescue ::StandardError => e
  @parse_error = Error::UnparsableInput.new(e.message)
end

Instance Attribute Details

#access_errorError::InaccessibleInput? (readonly)



20
21
22
# File 'lib/openapi3_parser/source_input.rb', line 20

def access_error
  @access_error
end

#parse_errorError::UnparsableInput? (readonly)



20
21
22
# File 'lib/openapi3_parser/source_input.rb', line 20

def parse_error
  @parse_error
end

Instance Method Details

#==(_other) ⇒ Object

Used to determine whether a different instance of SourceInput is the same file/data



45
# File 'lib/openapi3_parser/source_input.rb', line 45

def ==(_other); end

#available?Boolean

Indicates that the data within this input is suitable (i.e. can parse underlying JSON or YAML) for trying to use as part of a Document



33
34
35
# File 'lib/openapi3_parser/source_input.rb', line 33

def available?
  access_error.nil? && parse_error.nil?
end

#contentsObject

The parsed data from the input

Raises:



53
54
55
56
57
58
# File 'lib/openapi3_parser/source_input.rb', line 53

def contents
  raise access_error if access_error
  raise parse_error if parse_error

  @contents
end

#relative_to(_source_input) ⇒ String

The relative path, if possible, for this source_input compared to a different one. Defaults to empty string and should be specialised in subclasses



65
66
67
# File 'lib/openapi3_parser/source_input.rb', line 65

def relative_to(_source_input)
  ""
end

#resolve_next(_reference) ⇒ Object

For a given reference use the context of the current SourceInput to determine which file is required for the reference. This allows references to use relative file paths because we can combine them witt the current SourceInput location to determine the next one



41
# File 'lib/openapi3_parser/source_input.rb', line 41

def resolve_next(_reference); end