class Scribesend::APIResource
Public Class Methods
all(filters={}, opts={})
click to toggle source
# File lib/scribesend/api_resource.rb, line 49 def self.all(filters={}, opts={}) response, opts = self.request(:get, url, filters, opts) Util.convert_to_scribesend_object(response, opts) end
class_name()
click to toggle source
# File lib/scribesend/api_resource.rb, line 3 def self.class_name self.name.split('::')[-1] end
create(params={}, opts={})
click to toggle source
# File lib/scribesend/api_resource.rb, line 54 def self.create(params={}, opts={}) response, opts = self.request(:post, url, params, opts) Util.convert_to_scribesend_object(response, opts) end
request(method, url, params={}, opts={})
click to toggle source
API Methods
# File lib/scribesend/api_resource.rb, line 29 def self.request(method, url, params={}, opts={}) headers = opts.clone api_key = headers.delete(:api_key) api_base = headers.delete(:api_base) response, opts = Scribesend.request(method, url, api_key, params, headers, api_base) [response, opts] end
retrieve(id, opts={})
click to toggle source
# File lib/scribesend/api_resource.rb, line 43 def self.retrieve(id, opts={}) instance = self.new(id, opts) instance.refresh instance end
url()
click to toggle source
# File lib/scribesend/api_resource.rb, line 7 def self.url if self == APIResource raise NotImplementedError.new("APIResource is an abstract class. You should perform actions on its subclasses (Account, Entry, etc.)") end if (self.class_name[-1..-1] == 's' || self.class_name[-1..-1] == 'h') return "/#{CGI.escape(self.class_name.downcase)}es" elsif (self.class_name[-1..-1] == 'y') return "/#{CGI.escape(self.class_name.downcase[0..-2])}ies" else return "/#{CGI.escape(class_name.downcase)}s" end end
Public Instance Methods
refresh()
click to toggle source
# File lib/scribesend/api_resource.rb, line 38 def refresh response, opts = self.class.request(:get, url, @retrieve_params) refresh_from(response, opts) end
save(params={})
click to toggle source
def delete(params={}, opts={})
response, opts = self.class.request(:delete, url, params, opts) refresh_from(response, opts) self
end
# File lib/scribesend/api_resource.rb, line 65 def save(params={}) values = self.class.serialize_params(self).merge(params) if values.length > 0 values.delete(:id) response, opts = self.class.request(:post, url, values) refresh_from(response, opts) end self end
url()
click to toggle source
# File lib/scribesend/api_resource.rb, line 20 def url unless id = self['id'] raise Error.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