module DomoscioRails::Resource::ClassMethods
Public Instance Methods
Source
# File lib/domoscio_rails/resource.rb, line 8 def class_name name.split('::')[-1] end
Source
# File lib/domoscio_rails/resource.rb, line 16 def nesting? name.split('::').size > 2 end
Source
# File lib/domoscio_rails/resource.rb, line 12 def parent_class name.split('::')[-2] end
Source
# File lib/domoscio_rails/resource.rb, line 46 def raw_params(params = {}) params.merge({ instance_id: DomoscioRails.configuration.client_id }) end
Source
# File lib/domoscio_rails/resource.rb, line 36 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
Source
# File lib/domoscio_rails/resource.rb, line 52 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
Source
# File lib/domoscio_rails/resource.rb, line 20 def url(id, util_name, params) 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}" if nesting? parent = underscore(parent_class) build_url << "/#{parent}s" build_url << "/#{CGI.escape(params[(parent + '_id').to_sym].to_s)}" end 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