class DeviceCloud::Request

Public: Used to send Net::HTTP requests.

Examples:

get_response = DeviceCloud::Request.new("/ws/FileData").get
post_response = DeviceCloud::Request.new("/ws/sci").post(data)

Attributes

body[R]
path[R]

Public Class Methods

new(options = {}) click to toggle source

Public: Create a new instance of Request.

path - The path String to use.

# File lib/device_cloud/request.rb, line 16
def initialize(options = {})
  @path = options[:path]
  @body = options[:body]
end

Public Instance Methods

delete() click to toggle source

Public: Send a DELETE request.

Returns a DeviceCloud::Response instance.

# File lib/device_cloud/request.rb, line 55
def delete
  make_request do
    Net::HTTP::Delete.new request_uri
  end
end
get() click to toggle source

Public: Send a GET request.

Returns a DeviceCloud::Response instance.

# File lib/device_cloud/request.rb, line 24
def get
  make_request do
    Net::HTTP::Get.new request_uri
  end
end
post() click to toggle source

Public: Send a POST request.

body

Returns a DeviceCloud::Response instance.

# File lib/device_cloud/request.rb, line 35
def post
  make_request do
    Net::HTTP::Post.new request_uri
  end
end
put() click to toggle source

Public: Send a PUT request.

body

Returns a DeviceCloud::Response instance.

# File lib/device_cloud/request.rb, line 46
def put
  make_request do
    Net::HTTP::Put.new request_uri
  end
end

Private Instance Methods

make_request() { || ... } click to toggle source
# File lib/device_cloud/request.rb, line 70
def make_request
  Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
    request = yield
    request.basic_auth DeviceCloud.username, DeviceCloud.password

    DeviceCloud::Response.new http.request(request, body)
  end
end
request_uri() click to toggle source
# File lib/device_cloud/request.rb, line 62
def request_uri
  uri.request_uri
end
uri() click to toggle source
# File lib/device_cloud/request.rb, line 66
def uri
  @uri ||= URI.parse(DeviceCloud.root_url + path)
end