Class: Object

Inherits:
BasicObject
Defined in:
lib/cucumber/rest_api/http_client.rb

Instance Method Summary collapse

Instance Method Details

#blank?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/cucumber/rest_api/http_client.rb', line 10

def blank?
  respond_to?(:empty?) ? empty? : !self
end

#format_request_options(request_opts) ⇒ Object



79
80
81
82
83
84
85
86
87
# File 'lib/cucumber/rest_api/http_client.rb', line 79

def format_request_options request_opts
  body = nil
  if request_opts[:params]
    body = request_opts[:params].to_json
  else
    body = request_opts[:input]
  end
  return request, body
end

#header(key, value) ⇒ Object



18
19
20
21
# File 'lib/cucumber/rest_api/http_client.rb', line 18

def header key, value
  @headers = Hash.new(0) if @headers == nil
  @headers[key] = value
end

#last_responseObject



23
24
25
# File 'lib/cucumber/rest_api/http_client.rb', line 23

def last_response
  return @response
end

#perform_delete_request(uri, request_opts) ⇒ Object



74
75
76
77
# File 'lib/cucumber/rest_api/http_client.rb', line 74

def perform_delete_request uri,request_opts
  request = Net::HTTP::Delete.new(uri.request_uri)
  return request, format_request_options(request_opts)
end

#perform_put_request(uri, request_opts) ⇒ Object



64
65
66
67
# File 'lib/cucumber/rest_api/http_client.rb', line 64

def perform_put_request uri,request_opts
  request = Net::HTTP::Put.new(uri.request_uri)
  return request, format_request_options(request_opts)
end

#present?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/cucumber/rest_api/http_client.rb', line 14

def present?
  !blank?
end

#request(path, request_opts) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/cucumber/rest_api/http_client.rb', line 27

def request path,request_opts
  req = "#{$SERVER_PATH}" + path
  uri = URI.parse(req)

  http = Net::HTTP.new(uri.host, uri.port)

  if request_opts[:method] == :post
    request, body = send_post_request(uri, request_opts)
  elsif request_opts[:method] == :put
    request, body  = perform_put_request(uri, request_opts)
  elsif request_opts[:method] == :get
    request = send_get_request(uri, request_opts)
  elsif request_opts[:method] == :delete
    request, body = perform_delete_request(uri, request_opts)
  end

  #do we have any headers to add?
  if @headers != nil
    @headers.each { |k,v| request.add_field(k, v) }
    @headers = nil
  end

  if req.include? "https"
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    @response = http.request(request,body)
  else
    http = Net::HTTP.new(uri.host, uri.port)
    @response = http.request(request,body)
  end
end

#send_get_request(uri, request_opts) ⇒ Object



69
70
71
72
# File 'lib/cucumber/rest_api/http_client.rb', line 69

def send_get_request uri,request_opts
  request = Net::HTTP::Get.new(uri.request_uri)
  return request
end

#send_post_request(uri, request_opts) ⇒ Object



59
60
61
62
# File 'lib/cucumber/rest_api/http_client.rb', line 59

def send_post_request uri,request_opts
  request = Net::HTTP::Post.new(uri.request_uri)
  return request, format_request_options(request_opts)
end