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
underscore(string) click to toggle source
# File lib/domoscio_rails/resource.rb, line 20
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, on_self = nil) click to toggle source
# File lib/domoscio_rails/resource.rb, line 8
def url(id = nil, util_name = nil, on_self = 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}"
  unless on_self
    build_url << "/#{underscore(class_name)}s"
    build_url << "/#{util_name}" if util_name
    build_url << "/#{CGI.escape(id.to_s)}" if id
  end
  build_url
end