Method: MIME::Type#initialize

Defined in:
lib/mime-types-1.16/lib/mime/types.rb

#initialize(content_type) {|_self| ... } ⇒ Type

Builds a MIME::Type object from the provided MIME Content Type value (e.g., ‘text/plain’ or ‘applicaton/x-eruby’). The constructed object is yielded to an optional block for additional configuration, such as associating extensions and encoding information.

Yields:

  • (_self)

Yield Parameters:

  • _self (MIME::Type)

    the object that the method was called on



425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
# File 'lib/mime-types-1.16/lib/mime/types.rb', line 425

def initialize(content_type) #:yields self:
  matchdata = MEDIA_TYPE_RE.match(content_type)

  if matchdata.nil?
    raise InvalidContentType, "Invalid Content-Type provided ('#{content_type}')"
  end

  @content_type = content_type
  @raw_media_type = matchdata.captures[0]
  @raw_sub_type = matchdata.captures[1]

  @simplified = MIME::Type.simplified(@content_type)
  matchdata = MEDIA_TYPE_RE.match(@simplified)
  @media_type = matchdata.captures[0]
  @sub_type = matchdata.captures[1]

  self.extensions   = nil
  self.encoding     = :default
  self.system       = nil
  self.registered   = true
  self.url          = nil
  self.obsolete     = nil
  self.docs         = nil

  yield self if block_given?
end