class Rester::Client::Resource

Attributes

client[R]
path[R]

Public Class Methods

new(client, path='') click to toggle source
# File lib/rester/client/resource.rb, line 7
def initialize(client, path='')
  @client = client
  @path = path
end

Public Instance Methods

delete(params={}) click to toggle source
# File lib/rester/client/resource.rb, line 20
def delete(params={})
  _request(:delete, '', params)
end
get(params={}) click to toggle source
# File lib/rester/client/resource.rb, line 12
def get(params={})
  _request(:get, '', params)
end
update(params={}) click to toggle source
# File lib/rester/client/resource.rb, line 16
def update(params={})
  _request(:put, '', params)
end

Private Instance Methods

_handle_search_or_create(name, params) click to toggle source
# File lib/rester/client/resource.rb, line 48
def _handle_search_or_create(name, params)
  verb, name = Utils.extract_method_verb(name)
  _request(verb, name, params)
end
_path(*args) click to toggle source
# File lib/rester/client/resource.rb, line 44
def _path(*args)
  Utils.join_paths(path, *args)
end
_request(verb, path, params={}) click to toggle source
# File lib/rester/client/resource.rb, line 40
def _request(verb, path, params={})
  client.request(verb, _path(path), params)
end
method_missing(meth, *args, &block) click to toggle source
# File lib/rester/client/resource.rb, line 26
def method_missing(meth, *args, &block)
  meth = meth.to_s
  arg = args.first

  case arg
  when Hash, NilClass
    _handle_search_or_create(meth, arg || {})
  when String, Symbol
    Resource.new(client, _path(meth, arg))
  else
    raise ArgumentError, "invalid argument type #{arg.inspect}"
  end
end