Sha256: a3fb5a7db902c07b83b0722f5d7e8ccff8781a232823835f34af7653e8c61cb9

Contents?: true

Size: 799 Bytes

Versions: 2

Compression:

Stored size: 799 Bytes

Contents

module Swagger
  # A common interface for building or loading Swagger documents of any version. See subclasses.
  class API < SwaggerObject
    def self.build(hash)
      version = hash['swaggerVersion'] || hash['swagger']
      major, _minor = version.to_s.split('.')
      case major
      when '2'
        Swagger::V2::API.new hash
      else
        fail ArgumentError, "Swagger version #{version} is not currently supported"
      end
    end

    def initialize(hash)
      @vendor_extensions = {}
      hash.each do |k, v|
        @vendor_extensions[k] = v if k.to_s.start_with? 'x-'
      end
      # HACK: There's got to be a better way, but Dash wasn't working well with strings
      super(Hashie::Mash.new(hash).to_hash(symbolize_keys: true))
    end
  end
end

require 'swagger/v2/api'

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
swagger-core-0.2.2 lib/swagger/api.rb
swagger-core-0.2.1 lib/swagger/api.rb