class Rimac::API

Constants

BASE_URL

Attributes

api_key[RW]

Public Class Methods

new(api_key) click to toggle source
# File lib/rimac.rb, line 13
def initialize(api_key)
  self.api_key = api_key
end

Public Instance Methods

get(resource, options = {}) click to toggle source
# File lib/rimac.rb, line 17
def get(resource, options = {})
  options ||= {}
  options[:limit] ||= 100
  options[:page] ||= 0
  options[:output] = "json_array"

  options[:limit] += 1

  headers = options.delete(:headers)

  url = url_for('invoke', resource, options)

  response = JSON.parse(Net::HTTP.get_response(URI.parse(url)).body)

  original_result = response["result"].to_a
  if headers
    headers = headers.to_a
  else
    headers = original_result.shift.to_a
  end

  results = []

  original_result.each do |row|
    result = {}

    headers.each_index do |i|
      result[headers[i].to_s.downcase.gsub(" ", "_")] = row[i] unless headers[i].nil?
    end

    results << result
  end

  response["result"] = results

  response
end

Private Instance Methods

url_for(method, resource, options = {}) click to toggle source
# File lib/rimac.rb, line 67
def url_for(method, resource, options = {})
  raise "API Key is required" if self.api_key.nil?

  url = BASE_URL + method + "/" + resource + "?auth_key=#{self.api_key}"

  options.each do |key, value|
    url = url + "&#{key}=#{value}"
  end

  url
end