class DomoscioRails::Resource
Public Class Methods
class_name()
click to toggle source
# File lib/domoscio_rails/resource.rb, line 4 def class_name name.split('::')[-1] end
raw_params(params = {})
click to toggle source
# File lib/domoscio_rails/resource.rb, line 29 def raw_params(params = {}) params.merge({ instance_id: DomoscioRails.configuration.client_id }) end
raw_url(util_name)
click to toggle source
# File lib/domoscio_rails/resource.rb, line 19 def raw_url(util_name) raise NotImplementedError, 'Resource is an abstract class. Do not use it directly.' if self == Resource build_url = "/v#{DomoscioRails.configuration.version}" build_url << "/#{underscore(class_name)}s" build_url << "/#{util_name}" if util_name build_url end
underscore(string)
click to toggle source
# File lib/domoscio_rails/resource.rb, line 35 def underscore(string) string.gsub(/::/, '/') .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_') .downcase end
url(id = nil, util_name = nil)
click to toggle source
# File lib/domoscio_rails/resource.rb, line 8 def url(id = nil, util_name = nil) raise NotImplementedError, 'Resource is an abstract class. Do not use it directly.' if self == Resource build_url = "/v#{DomoscioRails.configuration.version}/instances/#{DomoscioRails.configuration.client_id}" build_url << "/#{underscore(class_name)}s" build_url << "/#{util_name}" if util_name build_url << "/#{CGI.escape(id.to_s)}" if id build_url end