Sha256: e59e9b84a442e2f369bf61539e9c0c14e96e4c2724203b93fa09f80b75000cf0

Contents?: true

Size: 1.18 KB

Versions: 2

Compression:

Stored size: 1.18 KB

Contents

require "rest-client"

module SauceWhisk
  module RestRequestBuilder

    def get(resource_to_fetch=nil)
      resource_url = fully_qualified_resource
      resource_url << "/#{resource_to_fetch}" if resource_to_fetch
      RestClient::Request.execute({:method => :get, :url => resource_url}.merge auth_details)
    end

    def put(resource_id, body={})
      url = "#{fully_qualified_resource}/#{resource_id}"
      length = body.length
      headers = {"Content-Length" => length}
      req_params = {
          :method => :put,
          :url => url,
          :payload => body,
          :content_type => "application/json",
          :headers => headers
      }
      RestClient::Request.execute(req_params.merge auth_details)
    end

    def delete(resource_id)
      resource_to_delete = fully_qualified_resource << "/#{resource_id}"
      RestClient::Request.execute({:method => :delete, :url => resource_to_delete}.merge auth_details)
    end

    def auth_details
      {:user => SauceWhisk.username, :password => SauceWhisk.password}
    end

    def fully_qualified_resource
      return (respond_to? :resource) ? "#{SauceWhisk.base_url}/#{resource}" : SauceWhisk.base_url
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sauce_whisk-0.0.8 lib/sauce_whisk/rest_request_builder.rb
sauce_whisk-0.0.7 lib/sauce_whisk/rest_request_builder.rb