Sha256: 78e42da13f9572dd3c80fe433541aced4b2f7c9b6b64d874839e6e48eb4bea12

Contents?: true

Size: 901 Bytes

Versions: 1

Compression:

Stored size: 901 Bytes

Contents

# frozen_string_literal: true

require "openapi3_parser/error"
require "openapi3_parser/document"

require "yaml"
require "json"

module Openapi3Parser
  def self.load(input)
    # working_directory ||= if input.respond_to?(:read)
    #                         File.dirname(input)
    #                       else
    #                         Dir.pwd
    #                       end

    Document.new(parse_input(input))
  end

  def self.load_file(path)
    file = File.open(path)
    load(file)
  end

  def self.parse_input(input)
    return input if input.respond_to?(:keys)

    extension = input.respond_to?(:extname) ? input.extname : nil
    contents = input.respond_to?(:read) ? input.read : input

    if extension == ".json" || contents.strip[0] == "{"
      JSON.parse(contents)
    else
      YAML.safe_load(contents, [], [], true)
    end
  end

  private_class_method :parse_input
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
openapi3_parser-0.1.0 lib/openapi3_parser.rb