Sha256: b052aab25ae1d1ee50767517dc7981f81f7b73efed245f1c14268e8f7511dbcf
Contents?: true
Size: 700 Bytes
Versions: 15
Compression:
Stored size: 700 Bytes
Contents
# frozen_string_literal: true module HTTP class ContentType MIME_TYPE_RE = %r{^([^/]+/[^;]+)(?:$|;)}.freeze CHARSET_RE = /;\s*charset=([^;]+)/i.freeze attr_accessor :mime_type, :charset class << self # Parse string and return ContentType struct def parse(str) new mime_type(str), charset(str) end private # :nodoc: def mime_type(str) str.to_s[MIME_TYPE_RE, 1]&.strip&.downcase end # :nodoc: def charset(str) str.to_s[CHARSET_RE, 1]&.strip&.delete('"') end end def initialize(mime_type = nil, charset = nil) @mime_type = mime_type @charset = charset end end end
Version data entries
15 entries across 15 versions & 3 rubygems