class Kudzu::Agent::Util::MimeTypeDetector
Constants
- DEFALUT_MIME_TYPE
Public Class Methods
detect(response)
click to toggle source
# File lib/kudzu/agent/util/mime_type_detector.rb, line 8 def detect(response) from_header(response.response_header) || from_body(response.body) || from_url(response.url) || DEFALUT_MIME_TYPE rescue => e Kudzu.log :warn, "failed to detect mime: #{response.url}", error: e nil end
Private Class Methods
from_body(body)
click to toggle source
# File lib/kudzu/agent/util/mime_type_detector.rb, line 24 def from_body(body) mime = MimeMagic.by_magic(StringIO.new(body)) mime.to_s if mime end
from_header(header)
click to toggle source
# File lib/kudzu/agent/util/mime_type_detector.rb, line 20 def from_header(header) ContentTypeParser.parse(header['content-type']).first end
from_url(url)
click to toggle source
# File lib/kudzu/agent/util/mime_type_detector.rb, line 29 def from_url(url) uri = Addressable::URI.parse(url) mime = MimeMagic.by_path(uri.basename) mime.to_s if mime end