Sha256: 002d9ef44e0ad09e5e1b57a7980fb5142c9d66663ec28a15b8c50d69c47b6de8

Contents?: true

Size: 1.12 KB

Versions: 89

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Rails
  module Generators
    class ResourceRouteGenerator < NamedBase # :nodoc:
      # Properly nests namespaces passed into a generator
      #
      #   $ rails generate resource admin/users/products
      #
      # should give you
      #
      #   namespace :admin do
      #     namespace :users do
      #       resources :products
      #     end
      #   end
      def add_resource_route
        return if options[:actions].present?

        depth = 0
        lines = []

        # Create 'namespace' ladder
        # namespace :foo do
        #   namespace :bar do
        regular_class_path.each do |ns|
          lines << indent("namespace :#{ns} do\n", depth * 2)
          depth += 1
        end

        # inserts the primary resource
        # Create route
        #     resources 'products'
        lines << indent(%{resources :#{file_name.pluralize}\n}, depth * 2)

        # Create `end` ladder
        #   end
        # end
        until depth.zero?
          depth -= 1
          lines << indent("end\n", depth * 2)
        end

        route lines.join
      end
    end
  end
end

Version data entries

89 entries across 81 versions & 6 rubygems

Version Path
railties-6.0.6.1 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.6 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.5.1 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-5.2.8.1 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-5.2.8 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.5 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.8 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-5.2.7.1 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-5.2.7 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.7 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-5.2.6.3 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.6 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-5.2.6.2 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-5.2.6.1 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.5 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.4 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.3 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.2 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4.1 lib/rails/generators/rails/resource_route/resource_route_generator.rb
railties-6.0.4 lib/rails/generators/rails/resource_route/resource_route_generator.rb