class Openapi3Parser::SourceInput::Url
An input of a URL to an OpenAPI file
@attr_reader [String] request_url
The URL that will be requested @attr_reader [String] resolved_url
The eventual URL of the file that was
accessed, this may differ to the request_url in the case of redirects
Attributes
request_url[R]
resolved_url[R]
Public Class Methods
new(request_url)
click to toggle source
@param [String, URI] request_url
Calls superclass method
Openapi3Parser::SourceInput::new
# File lib/openapi3_parser/source_input/url.rb, line 18 def initialize(request_url) @request_url = request_url.to_s super() end
Public Instance Methods
==(other)
click to toggle source
@see SourceInput#other @param [SourceInput] other @return [Boolean]
# File lib/openapi3_parser/source_input/url.rb, line 33 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
inspect()
click to toggle source
return [String]
# File lib/openapi3_parser/source_input/url.rb, line 46 def inspect %{#{self.class.name}(url: #{url})} end
relative_to(source_input)
click to toggle source
@return [String]
# File lib/openapi3_parser/source_input/url.rb, line 56 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)
click to toggle source
@see SourceInput#resolve_next
@param [Source::Reference] reference @return [SourceInput]
# File lib/openapi3_parser/source_input/url.rb, line 26 def resolve_next(reference) ResolveNext.call(reference, self, base_url: resolved_url) end
to_s()
click to toggle source
@return [String]
# File lib/openapi3_parser/source_input/url.rb, line 51 def to_s request_url end
url()
click to toggle source
return [String]
# File lib/openapi3_parser/source_input/url.rb, line 41 def url resolved_url || request_url end
Private Instance Methods
parse_contents()
click to toggle source
# File lib/openapi3_parser/source_input/url.rb, line 70 def parse_contents begin file = URI.parse(request_url).open rescue ::StandardError => e @access_error = Error::InaccessibleInput.new(e.message) return end @resolved_url = file.base_uri.to_s StringParser.call(file.read, resolved_url) end