Sha256: 2f112b78ef2525aa50bd103d33871607d8002a7b87121b582065518f1fff4e8b

Contents?: true

Size: 804 Bytes

Versions: 1

Compression:

Stored size: 804 Bytes

Contents

module Swagger
  # A common interface for building or loading Swagger documents of any version. See subclasses.
  class API < SwaggerObject
    def self.build_api(hash)
      version = hash['swaggerVersion'] || hash['swagger']
      major, _minor = version.to_s.split('.')
      case major
      when '2'
        Swagger::V2::API.new hash
      else
        raise 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

1 entries across 1 versions & 1 rubygems

Version Path
swagger-core-0.3.0 lib/swagger/api.rb