class Rodzilla::Resource::Base

Attributes

base_url[RW]
format[RW]
password[RW]
service[RW]
username[RW]

Public Class Methods

new(base_url, username, password, format=:json) click to toggle source
# File lib/rodzilla/resource/base.rb, line 6
def initialize(base_url, username, password, format=:json)
  @base_url = base_url
  @username = username
  @password = password
  @format = format

  setup_service(format)
end

Public Instance Methods

raw_http_request(http_method, url, options={}) click to toggle source

Makes a GET request to the service endpoint and checks if the return status is 200

# File lib/rodzilla/resource/base.rb, line 21
def raw_http_request(http_method, url, options={})
  @service.send_raw_request(http_method, url, options)
end
rpc_call(rpc_method_name, params={}, http_method=:post) click to toggle source
# File lib/rodzilla/resource/base.rb, line 15
def rpc_call(rpc_method_name, params={}, http_method=:post)
  service.send_request!( get_resource_rpc_method_name(rpc_method_name), params, http_method)
end

Protected Instance Methods

check_params(required=[], actual) click to toggle source
# File lib/rodzilla/resource/base.rb, line 46
def check_params(required=[], actual)
  if actual.is_a?(Hash)
    (required - actual.keys).length == 0
  else
    (required - actual).length == 0
  end
end
get_resource_rpc_method_name(rpc_method_name) click to toggle source
# File lib/rodzilla/resource/base.rb, line 27
def get_resource_rpc_method_name(rpc_method_name)
  [Rodzilla::Util.demodulize(self.class), rpc_method_name.to_s].join('.')
end
set_endpoint_url(format) click to toggle source
# File lib/rodzilla/resource/base.rb, line 39
def set_endpoint_url(format)
  case format
  when :json
    File.join(@base_url, 'jsonrpc.cgi')
  end
end
setup_service(format) click to toggle source
# File lib/rodzilla/resource/base.rb, line 31
def setup_service(format)
  case format
  when :json
    @endpoint_url = set_endpoint_url(:json)
    @service  = Rodzilla::JsonRpc::Service.new(@endpoint_url, @username, @password)
  end
end