Class: Openapi3Parser::SourceInput::Url

Inherits:
Openapi3Parser::SourceInput show all
Defined in:
lib/openapi3_parser/source_input/url.rb

Overview

An input of a URL to an OpenAPI file

Defined Under Namespace

Classes: RelativeUrlDifference

Instance Attribute Summary collapse

Attributes inherited from Openapi3Parser::SourceInput

#access_error, #parse_error

Instance Method Summary collapse

Methods inherited from Openapi3Parser::SourceInput

#available?, #contents

Constructor Details

#initialize(request_url) ⇒ Url

Returns a new instance of Url.

Parameters:

  • request_url (String, URI)


21
22
23
24
# File 'lib/openapi3_parser/source_input/url.rb', line 21

def initialize(request_url)
  @request_url = request_url.to_s
  initialize_contents
end

Instance Attribute Details

#request_urlString (readonly)

The URL that will be requested

Returns:

  • (String)

    the current value of request_url



17
18
19
# File 'lib/openapi3_parser/source_input/url.rb', line 17

def request_url
  @request_url
end

#resolved_urlString (readonly)

The eventual URL of the file that was accessed, this may differ to the request_url in the case of redirects

Returns:

  • (String)

    the current value of resolved_url



17
18
19
# File 'lib/openapi3_parser/source_input/url.rb', line 17

def resolved_url
  @resolved_url
end

Instance Method Details

#==(other) ⇒ Boolean

Parameters:

Returns:

  • (Boolean)

See Also:

  • SourceInput#other


36
37
38
39
40
# File 'lib/openapi3_parser/source_input/url.rb', line 36

def ==(other)
  return false unless other.instance_of?(self.class)
  [request_url, resolved_url].include?(other.request_url) ||
    [request_url, resolved_url].include?(other.resolved_url)
end

#inspectObject

return [String]



48
49
50
# File 'lib/openapi3_parser/source_input/url.rb', line 48

def inspect
  %{#{self.class.name}(url: #{url})}
end

#relative_to(source_input) ⇒ String

Returns:

  • (String)


58
59
60
61
62
63
64
65
66
67
68
# File 'lib/openapi3_parser/source_input/url.rb', line 58

def relative_to(source_input)
  other_url = if source_input.respond_to?(:url)
                source_input.url
              elsif source_input.respond_to?(:base_url)
                source_input.base_url
              end

  return url unless other_url

  other_url ? RelativeUrlDifference.call(other_url, url) : url
end

#resolve_next(reference) ⇒ SourceInput

Parameters:

Returns:

See Also:



29
30
31
# File 'lib/openapi3_parser/source_input/url.rb', line 29

def resolve_next(reference)
  ResolveNext.call(reference, self, base_url: resolved_url)
end

#to_sString

Returns:

  • (String)


53
54
55
# File 'lib/openapi3_parser/source_input/url.rb', line 53

def to_s
  request_url
end

#urlObject

return [String]



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

def url
  resolved_url || request_url
end