Sha256: 43fe0605c88fdd545ae8f3cca749f2a06a132352cf1a5b1d2c0a71b70651fcd1
Contents?: true
Size: 946 Bytes
Versions: 5
Compression:
Stored size: 946 Bytes
Contents
module MachineShop class APIResource < MachineShopObject def self.class_name self.name.split('::')[-1] end def self.url() if self == APIResource raise NotImplementedError.new('APIResource is an abstract class. You should perform actions on its subclasses (Device, Rule, etc.)') end ret = "/platform/#{CGI.escape(class_name.underscore)}" ret end def url unless id = self['id'] raise InvalidRequestError.new("Could not determine which URL to request: #{self.class} instance has invalid ID: #{id.inspect}", 'id') end ret = "#{self.class.url}/#{CGI.escape(id)}" ret end def refresh response = MachineShop.get(url, @auth_token) refresh_from(response, auth_token) self end def self.retrieve(id, auth_token=nil) instance = self.new(id, auth_token) instance.refresh instance end end end
Version data entries
5 entries across 5 versions & 1 rubygems