Class: Payable::Resource
- Inherits:
-
Dry::Struct
- Object
- Dry::Struct
- Payable::Resource
show all
- Defined in:
- lib/payable/resource.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.api_url ⇒ Object
12
13
14
|
# File 'lib/payable/resource.rb', line 12
def self.api_url
Addressable::URI.parse Payable.config.api_url
end
|
.collection ⇒ Object
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/payable/resource.rb', line 26
def self.collection
raise NotImplementedError if self == Payable::Resource
@collection ||= begin
collection = name.split('::').last
collection = collection.split(/(?=[A-Z])/).map(&:downcase)
"#{ collection.join('_') }s"
end
end
|
.list(options = {}) ⇒ Object
37
38
39
|
# File 'lib/payable/resource.rb', line 37
def self.list(options = {})
ResourceList.new(self, options)
end
|
.retrieve(id, client: Payable.client, params: {}) ⇒ Object
20
21
22
23
24
|
# File 'lib/payable/resource.rb', line 20
def self.retrieve(id, client: Payable.client, params: {})
response = client.get(url_template.expand(id: id), params)
new(response.body)
end
|
.url_template ⇒ Object
16
17
18
|
# File 'lib/payable/resource.rb', line 16
def self.url_template
Addressable::Template.new api_url.join("#{collection}/{id}")
end
|
Instance Method Details
#url ⇒ Object
41
42
43
|
# File 'lib/payable/resource.rb', line 41
def url
self.class.url_template.expand(id: id)
end
|