Module: Typhoeus::Utils
- Defined in:
- lib/typhoeus/utils.rb
Class Method Summary collapse
- .bytesize(string) ⇒ Object
-
.escape(s) ⇒ Object
Taken from Rack::Utils, 1.2.1 to remove Rack dependency.
- .traversal_to_param_string(traversal, escape = true) ⇒ Object
-
.traverse_params_hash(hash, result = nil, current_key = nil) ⇒ Object
Params are NOT escaped.
Class Method Details
.bytesize(string) ⇒ Object
52 53 54 |
# File 'lib/typhoeus/utils.rb', line 52 def bytesize(string) string.bytesize end |
.escape(s) ⇒ Object
Taken from Rack::Utils, 1.2.1 to remove Rack dependency.
4 5 6 7 8 |
# File 'lib/typhoeus/utils.rb', line 4 def escape(s) s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/u) { '%'+$1.unpack('H2'*bytesize($1)).join('%').upcase }.tr(' ', '+') end |
.traversal_to_param_string(traversal, escape = true) ⇒ Object
42 43 44 45 46 |
# File 'lib/typhoeus/utils.rb', line 42 def traversal_to_param_string(traversal, escape = true) traversal[:params].collect { |param| "#{Typhoeus::Utils.escape(param[0])}=#{Typhoeus::Utils.escape(param[1])}" }.join('&') end |
.traverse_params_hash(hash, result = nil, current_key = nil) ⇒ Object
Params are NOT escaped.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/typhoeus/utils.rb', line 12 def traverse_params_hash(hash, result = nil, current_key = nil) result ||= { :files => [], :params => [] } hash.keys.sort { |a, b| a.to_s <=> b.to_s }.collect do |key| new_key = (current_key ? "#{current_key}[#{key}]" : key).to_s case hash[key] when Hash traverse_params_hash(hash[key], result, new_key) when Array array_key = "#{new_key}[]" hash[key].each do |v| result[:params] << [array_key, v.to_s] end when File filename = File.basename(hash[key].path) types = MIME::Types.type_for(filename) result[:files] << [ new_key, filename, types.empty? ? 'application/octet-stream' : types[0].to_s, File.(hash[key].path) ] else result[:params] << [new_key, hash[key].to_s] end end result end |