Module: Requests::Utils
- Defined in:
- lib/requests/utils.rb
Class Method Summary collapse
- .default_headers ⇒ Object
- .default_user_agent ⇒ Object
- .encoding_from_headers(headers) ⇒ Object
- .guess_filename(obj, fallback) ⇒ Object
- .looks_like_html?(str) ⇒ Boolean
- .parse_header_links(value) ⇒ Object
- .truncate(str, length = 200) ⇒ Object
Class Method Details
.default_headers ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/requests/utils.rb', line 6 def default_headers CIHash.new( 'User-Agent' => default_user_agent, 'Accept' => '*/*', 'Accept-Encoding' => 'gzip, deflate' ) end |
.default_user_agent ⇒ Object
14 15 16 |
# File 'lib/requests/utils.rb', line 14 def default_user_agent "requests_ruby/#{Requests::VERSION}" end |
.encoding_from_headers(headers) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/requests/utils.rb', line 40 def encoding_from_headers(headers) ct = headers['content-type'] return 'UTF-8' unless ct m = ct.match(/charset=([\w\-]+)/i) m ? m[1] : 'UTF-8' end |
.guess_filename(obj, fallback) ⇒ Object
36 37 38 39 |
# File 'lib/requests/utils.rb', line 36 def guess_filename(obj, fallback) return File.basename(obj.path) if obj.respond_to?(:path) && obj.path fallback.to_s end |
.looks_like_html?(str) ⇒ Boolean
51 52 53 |
# File 'lib/requests/utils.rb', line 51 def looks_like_html?(str) !!(str.to_s.lstrip =~ /\A(<!DOCTYPE html|<html)/i) end |
.parse_header_links(value) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/requests/utils.rb', line 17 def parse_header_links(value) return {} if value.nil? || value.empty? out = {} value.split(',').each do |part| seg = part.split(';') url = seg.shift.to_s.strip.gsub(/[<>]/, '') attrs = {} rel = nil seg.each do |a| k, v = a.strip.split('=', 2) next unless k v = v.to_s.gsub('"', '') attrs[k] = v rel = v if k == 'rel' end out[rel] = attrs.merge('url' => url) end out end |
.truncate(str, length = 200) ⇒ Object
46 47 48 49 50 |
# File 'lib/requests/utils.rb', line 46 def truncate(str, length = 200) s = str.to_s return s if s.length <= length "#{s[0, length]}... (#{s.length} chars total)" end |