class Openapi3Parser::SourceInput::StringParser

Attributes

filename[R]
input[R]

Public Class Methods

call(input, filename = nil) click to toggle source
# File lib/openapi3_parser/source_input/string_parser.rb, line 9
def self.call(input, filename = nil)
  new(input, filename).call
end

Private Class Methods

new(input, filename) click to toggle source
# File lib/openapi3_parser/source_input/string_parser.rb, line 13
def initialize(input, filename)
  @input = input
  @filename = filename
end

Public Instance Methods

call() click to toggle source
# File lib/openapi3_parser/source_input/string_parser.rb, line 18
def call
  json? ? parse_json : parse_yaml
end

Private Instance Methods

json?() click to toggle source
# File lib/openapi3_parser/source_input/string_parser.rb, line 28
def json?
  return false if filename && ::File.extname(filename) == ".yaml"

  json_filename = filename && ::File.extname(filename) == ".json"
  json_filename || input.strip[0] == "{"
end
parse_json() click to toggle source
# File lib/openapi3_parser/source_input/string_parser.rb, line 35
def parse_json
  JSON.parse(input)
end
parse_yaml() click to toggle source
# File lib/openapi3_parser/source_input/string_parser.rb, line 39
def parse_yaml
  Psych.safe_load(input, permitted_classes: [Date, Time], aliases: true)
end