Sha256: d5607e58bbd6dd6a465f5f19b137ebab0ab595cc397c8fe4ceab70226eac3193

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

# Base class for 3taps API client classes.
class Client
  DEFAULT_URL = 'http://3taps.net'
  DEFAULT_API_PORT = 80
  TIMEOUT = 15
  # Initializes Client class with +baseUrl+ and +port+ parameters. By default 
  # DEFAULT_URL and DEFAULT_API_PORT are used. Examples:
  #  Client.new
  #  Client.new("http://3taps.com", 8080)
  def initialize(baseUrl = DEFAULT_URL, port = DEFAULT_API_PORT)
    @baseURL = baseUrl
    @port = port
  end

  # Executes GET request on URL and port with +path+ and +params+ parameters.
  # Example:
  #
  #  execute_get("/search", "data=data")
  def execute_get( path, params = nil )
    address = params.nil? ? path : path + '?' + params 
    request = Curl::Easy.new("#{@baseURL}:#{@port}" + address) 
    begin
      request.perform
    rescue
      "Some Error with Request."
    end
    request.body_str
  end

  # Executes POST request on URL and port with +path+ and +params+ parameters.
  # Example:
  #
  #  execute_post("search", "data=data")
  def execute_post( path, params = nil )
    c = Curl::Easy.new("#{@baseURL}:#{@port}/#{path}")
    param, data = params.split("=",2)
    c.http_post(param.to_s + '=' + c.escape(data.to_s))
    c.timeout = TIMEOUT
    c.perform
    c.body_str
  end

  private

  def decode(data)
    ActiveSupport::JSON.decode(data)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
threetaps-client-1.0.11 lib/client/client.rb