class_collisions(*class_names)
public
Check whether the given class names are already taken by Ruby or Rails. In the future, expand to check other
namespaces such as the rest of the user’s app.
Show source
def class_collisions(*class_names)
last_class = Object
current_class = nil
name = nil
class_names.flatten.each do |class_name|
class_name = class_name.to_s
class_name.strip.empty? ? next : current_class = class_name
nesting = class_name.split('::')
name = nesting.pop
last = nesting.inject(last_class) { |last, nest|
break unless last_class.const_defined?(nest)
last_class = last_class.const_get(nest)
}
end
if last_class and last_class.const_defined?(name.camelize)
raise_class_collision(current_class)
end
end