class Payable::Resource
Public Class Methods
api_url()
click to toggle source
# File lib/payable/resource.rb, line 12 def self.api_url Addressable::URI.parse Payable.config.api_url end
collection()
click to toggle source
# 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 = {})
click to toggle source
# File lib/payable/resource.rb, line 37 def self.list(options = {}) ResourceList.new(self, options) end
retrieve(id, client: Payable.client, params: {})
click to toggle source
# 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()
click to toggle source
# File lib/payable/resource.rb, line 16 def self.url_template Addressable::Template.new api_url.join("#{collection}/{id}") end
Public Instance Methods
url()
click to toggle source
# File lib/payable/resource.rb, line 41 def url self.class.url_template.expand(id: id) end