Sha256: 89e429864b7389c579f604efed3c082703c5504925fee46b716b2e63e2b041e5
Contents?: true
Size: 1.54 KB
Versions: 4
Compression:
Stored size: 1.54 KB
Contents
module Onebox module Helpers def self.symbolize_keys(hash) return {} if hash.nil? hash.inject({}){|result, (key, value)| new_key = case key when String then key.to_sym else key end new_value = case value when Hash then symbolize_keys(value) else value end result[new_key] = new_value result } end def self.clean(html) html.gsub(/<[^>]+>/, ' ').gsub(/\n/, '') end def self.fetch_response(location, limit = 5, domain = nil, headers = nil) raise Net::HTTPError.new('HTTP redirect too deep', location) if limit == 0 uri = URI(location) if !uri.host uri = URI("#{domain}#{location}") end http = Net::HTTP.new(uri.host, uri.port) http.open_timeout = Onebox.options.connect_timeout http.read_timeout = Onebox.options.timeout if uri.is_a?(URI::HTTPS) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE end response = http.request_get(uri.request_uri,headers) cookie = response.get_fields('set-cookie') if (cookie) header = {'cookie' => cookie.join("")} end header = nil unless header.is_a? Hash case response when Net::HTTPSuccess then response when Net::HTTPRedirection then fetch_response(response['location'], limit - 1, "#{uri.scheme}://#{uri.host}",header) else response.error! end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
onebox-1.5.16 | lib/onebox/helpers.rb |
onebox-1.5.14 | lib/onebox/helpers.rb |
onebox-1.5.13 | lib/onebox/helpers.rb |
onebox-1.5.12 | lib/onebox/helpers.rb |