Module: Typhoeus::Utils

Defined in:
lib/typhoeus/utils.rb

Class Method Summary collapse

Class Method Details

.bytesize(string) ⇒ Object



35
36
37
# File 'lib/typhoeus/utils.rb', line 35

def bytesize(string)
  string.bytesize
end

.byteslice(string, *args) ⇒ Object



48
49
50
# File 'lib/typhoeus/utils.rb', line 48

def byteslice(string, *args)
  string.byteslice(*args)
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

.escape_params(params) ⇒ Object



11
12
13
14
15
16
# File 'lib/typhoeus/utils.rb', line 11

def escape_params(params)
  traverse_params_hash(params)[:params].inject({}) do |memo, (k, v)|
    memo[escape(k)] = escape(v)
    memo
  end
end

.traversal_to_param_string(traversal, escape = true) ⇒ Object



25
26
27
28
29
# File 'lib/typhoeus/utils.rb', line 25

def traversal_to_param_string(traversal, escape = true)
  traversal[:params].collect { |param|
    escape ? "#{Typhoeus::Utils.escape(param[0])}=#{Typhoeus::Utils.escape(param[1])}" : "#{param[0]}=#{param[1]}"
  }.join('&')
end

.traverse_params_hash(hash, result = nil, current_key = nil) ⇒ Object

Params are NOT escaped.



20
21
22
# File 'lib/typhoeus/utils.rb', line 20

def traverse_params_hash(hash, result = nil, current_key = nil)
  result = ParamProcessor.traverse_params_hash hash, result, current_key
end