class Openapi3Parser::SourceInput::ResolveNext
Attributes
base_url[R]
current_source_input[R]
reference[R]
working_directory[R]
Public Class Methods
call(reference, current_source_input, base_url: nil, working_directory: nil)
click to toggle source
@param reference [Source::Reference] @param current_source_input
[SourceInput] @param base_url
[String, nil] @param working_directory
[String, nil] @return [SourceInput]
# File lib/openapi3_parser/source_input/resolve_next.rb, line 11 def self.call(reference, current_source_input, base_url: nil, working_directory: nil) new(reference, current_source_input, base_url, working_directory) .source_input end
Private Class Methods
new(reference, current_source_input, base_url, working_directory)
click to toggle source
# File lib/openapi3_parser/source_input/resolve_next.rb, line 19 def initialize(reference, current_source_input, base_url, working_directory) @reference = reference @current_source_input = current_source_input @base_url = base_url @working_directory = working_directory end
Public Instance Methods
source_input()
click to toggle source
# File lib/openapi3_parser/source_input/resolve_next.rb, line 31 def source_input return current_source_input if reference.only_fragment? if reference.absolute? SourceInput::Url.new(reference.resource_uri) else base_url ? url_source_input : file_source_input end end
Private Instance Methods
file_source_input()
click to toggle source
# File lib/openapi3_parser/source_input/resolve_next.rb, line 51 def file_source_input path = reference.resource_uri.path return SourceInput::File.new(path) if path[0] == "/" expanded_path = ::File.expand_path(path, working_directory) SourceInput::File.new(expanded_path) end
url_source_input()
click to toggle source
# File lib/openapi3_parser/source_input/resolve_next.rb, line 46 def url_source_input url = URI.join(base_url, reference.resource_uri) SourceInput::Url.new(url) end