instance method class_collisions

Ruby on Rails 7.2.3

Since v5.2.8.1 Private

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

class_collisions(*class_names)

Check whether the given class names are already taken by user application or Ruby on Rails.

Parameters

class_names rest
Source
# File railties/lib/rails/generators/base.rb, line 264
        def class_collisions(*class_names)
          return unless behavior == :invoke
          return if options.skip_collision_check?
          return if options.force?

          class_names.flatten.each do |class_name|
            class_name = class_name.to_s
            next if class_name.strip.empty?

            # Split the class from its module nesting
            nesting = class_name.split("::")
            last_name = nesting.pop
            last = extract_last_module(nesting)

            if last && last.const_defined?(last_name.camelize, false)
              raise Error, "The name '#{class_name}' is either already used in your application " \
                           "or reserved by Ruby on Rails. Please choose an alternative or use --skip-collision-check "  \
                           "or --force to skip this check and run this generator again."
            end
          end
        end

Defined in railties/lib/rails/generators/base.rb line 264 · View on GitHub · Improve this page · Find usages on GitHub

Defined in Rails::Generators::Base

Type at least 2 characters to search.

↑↓ navigate · open · esc close