Module: SimpleUri

Defined in:
lib/simple_uri.rb,
lib/simple_uri/version.rb

Constant Summary collapse

VERSION =
"0.0.6"
@@debug_mode =
false

Class Method Summary collapse

Class Method Details

.connect(url = '', method = nil, options = { params: nil, user: nil, password: nil, debug: @@debug_mode }) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/simple_uri.rb', line 13

def connect(url='', method=nil, options={ params: nil, user: nil, password: nil, debug: @@debug_mode })
  enable_debug_mode(options[:debug])
  uri = URI.parse(URI.encode(prepare_url(url)))
  http = Net::HTTP.new(uri.host, uri.port)
  http.read_timeout = 1000
  debug_http(http)
  if url.match(/^https/)
    debug_msg 'Use SSL'
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  end
  req = "Net::HTTP::#{method.to_s.capitalize}".constantize.new(uri.path+options[:params].to_s)
  req.basic_auth options[:user], options[:password] if options[:user] && options[:password]
  [req, http]
end

.send_request(url = nil, method = :get, options = { params: nil, req_body: nil, req_headers: nil, user: nil, password: nil, debug: @@debug_mode, cookies: false }) ⇒ Object Also known as: req



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/simple_uri.rb', line 29

def send_request(url=nil, method=:get, options={ params: nil, req_body: nil, req_headers: nil, user: nil, password: nil, debug: @@debug_mode, cookies: false })
  req, http = connect(url, method, { params: options[:params], user: options[:user], password: options[:password], debug: options[:debug] })
  req.body = prepare_req_body(options[:req_body])
  options[:req_headers].each { |k, v| req[k] = v } if options[:req_headers]
  res = http.request(req)
  res.body
  res_body = begin
               JSON.parse(res.body)
             rescue
               debug_msg 'Can\'t convert response to JSON'
               res.body
             end
  options[:cookies] ? { body: res_body, cookies: res.response['set-cookie'] } : res_body
end