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