Class: Moonclerk::APIResource
Class Method Summary
collapse
Instance Method Summary
collapse
included
#==, #[], #[]=, #_dump, _load, #as_json, construct_from, #each, #initialize, #inspect, #keys, #refresh_from, #respond_to?, #serialize_nested_object, serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Moonclerk::MoonclerkObject
Class Method Details
.class_name ⇒ Object
5
6
7
|
# File 'lib/moonclerk/api_resource.rb', line 5
def self.class_name
self.name.split('::')[-1]
end
|
.find(id) ⇒ Object
38
39
40
|
# File 'lib/moonclerk/api_resource.rb', line 38
def self.find(id)
self.retrieve(id)
end
|
.retrieve(id) ⇒ Object
32
33
34
35
36
|
# File 'lib/moonclerk/api_resource.rb', line 32
def self.retrieve(id)
instance = self.new(id.to_s)
instance.refresh
instance
end
|
.url ⇒ Object
9
10
11
12
13
14
|
# File 'lib/moonclerk/api_resource.rb', line 9
def self.url
if self == APIResource
raise NotImplementedError.new('APIResource is an abstract class. You should perform actions on its subclasses (Customer, Payment, etc.)')
end
"#{API_BASE}/#{CGI.escape(class_name.pluralize.downcase)}"
end
|
Instance Method Details
#refresh ⇒ Object
27
28
29
30
|
# File 'lib/moonclerk/api_resource.rb', line 27
def refresh
response = request(:get, url, @retrieve_params)
refresh_from(response)
end
|
#url ⇒ Object
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/moonclerk/api_resource.rb', line 16
def url
if self.is_a?(Moonclerk::ListObject)
return "#{API_BASE}/#{CGI.escape(self[:object])}s"
end
unless id = self['id']
raise InvalidRequestError.new("Could not determine which URL to request: #{self.class} instance has invalid ID: #{id.inspect}", 'id')
end
"#{self.class.url}/#{CGI.escape(id)}"
end
|