Sha256: 638d92f6a1c3cd433d243a801c5944b93e808ccaef9bc40e053f3c1ae702b0dd
Contents?: true
Size: 846 Bytes
Versions: 4
Compression:
Stored size: 846 Bytes
Contents
# frozen_string_literal: true require "yaml" require "json" module Openapi3Parser class SourceInput class StringParser def self.call(input, filename = nil) new(input, filename).call end def initialize(input, filename) @input = input @filename = filename end def call json? ? parse_json : parse_yaml end private_class_method :new private attr_reader :input, :filename def json? return false if filename && ::File.extname(filename) == ".yaml" json_filename = filename && ::File.extname(filename) == ".json" json_filename || input.strip[0] == "{" end def parse_json JSON.parse(input) end def parse_yaml YAML.safe_load(input, [Date, Time], [], true) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems