Sha256: 2ff849022104b829d4746bd257df477970d2acf9837fab868716984f46ed7192
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true module Peddler # Parses content metadata provided in the headers of a response class Content # @!visibility private attr_reader :headers # @!visibility private def initialize(headers) @headers = headers.select { |key| key.start_with?('Content') } end # The size of the response body in bytes # @return [String, nil] def length return unless headers['Content-Length'] headers['Content-Length'].to_i end # The MD5 digest of the response body # @return [String, nil] def md5 headers['Content-MD5'] end # The MIME type of the response # @return [String, nil] def media_type return unless headers['Content-Type'] headers['Content-Type'].split(';').first end # The general category into which the MIME type falls # @return [String, nil] def type return unless media_type media_type.split('/').first end # The exact kind of data of the specified type the MIME type represents # @return [String, nil] def subtype return unless media_type media_type.split('/').last end # The character encoding of the response # @return [Encoding, nil] def charset match_data = headers['Content-Type']&.match(/charset=(.*);?/) return unless match_data Encoding.find(match_data[1]) end # Whether the response is an XML document # @return [Boolean, nil] def xml? return unless subtype subtype == 'xml' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
peddler-2.3.0 | lib/peddler/content.rb |