class Graphiti::Util::Class
Public Class Methods
graphql_type_name(name)
click to toggle source
# File lib/graphiti/util/class.rb, line 24 def self.graphql_type_name(name) name.gsub("Resource", "") .gsub("::", "") # remove modules .gsub(".", "__") # remove remote resource . end
infer_resource_class(parent_resource_class, sideload_name)
click to toggle source
# File lib/graphiti/util/class.rb, line 4 def self.infer_resource_class(parent_resource_class, sideload_name) namespace = namespace_for(parent_resource_class) inferred_name = "#{sideload_name.to_s.singularize.classify}Resource" klass_name = "#{namespace}::#{inferred_name}" tried = [klass_name, inferred_name] klass = klass_name.safe_constantize klass ||= inferred_name.safe_constantize unless klass raise Errors::ResourceNotFound.new(parent_resource_class, sideload_name, tried) end klass end
namespace_for(klass)
click to toggle source
# File lib/graphiti/util/class.rb, line 17 def self.namespace_for(klass) namespace = klass.name return "" unless namespace split = namespace.split("::") split[0, split.length - 1].join("::") end