class Swagger::MimeType

Class representing Media Types (commonly known as MIME Types). @see en.wikipedia.org/wiki/Internet_media_type

Constants

COMMON_ALIASES
MIME_TYPE_FORMAT

Public Class Methods

new(mime_type_name) click to toggle source
Calls superclass method
# File lib/swagger/mime_type.rb, line 20
def initialize(mime_type_name)
  @mime_type_name = mime_type_name.to_s
  @mime_type = MIME::Types[@mime_type_name].first || base_type(@mime_type_name)
  raise ArgumentError, "Unknown mime type or suffix: #{mime_type_name}" if @mime_type.nil?
  super @mime_type_name
end
parser_for(mime_type) click to toggle source
# File lib/swagger/mime_type.rb, line 27
def self.parser_for(mime_type)
  mime_type = COMMON_ALIASES[mime_type] if COMMON_ALIASES.key? mime_type
  case mime_type
  when 'application/json'
    return JSON
  else
    raise NotImplementedError, "Parser support for #{mime_type} is not implemented"
  end
end

Private Instance Methods

base_type(mime_type_name) click to toggle source
# File lib/swagger/mime_type.rb, line 39
def base_type(mime_type_name)
  media_type, _sub_type, _tree, suffix, _parameters = MIME_TYPE_FORMAT.match mime_type_name
  return MIME::Types["#{media_type}/#{suffix}"].first if media_type && suffix
  nil
end