Sha256: 4c724f82cf9aaf80e070fe05b790c2bbb70db4ffaf11c669011390e5af6b7cec

Contents?: true

Size: 1.16 KB

Versions: 6

Compression:

Stored size: 1.16 KB

Contents

require 'rails/generators.rb'
require 'rails/generators/rails/resource_route/resource_route_generator.rb'

module Rails
  module Generators
    class BasepackResourceRouteGenerator < ::Rails::Generators::ResourceRouteGenerator

      def add_resource_route
        return if options[:actions].present?

        # iterates over all namespaces and opens up blocks
        regular_class_path.each_with_index do |namespace, index|
          write("namespace :#{namespace} do", index + 1)
        end

        # inserts the primary resource
        write("resources :#{file_name.pluralize}, concerns: :resourcable", route_length + 1)

        # ends blocks
        regular_class_path.each_index do |index|
          write("end", route_length - index)
        end

        # route prepends two spaces onto the front of the string that is passed, this corrects that
        route_after route_string[2..-1]
      end

    private

      def route_after(routing_code)
        log :route, routing_code

        in_root do
          inject_into_file 'config/routes.rb', "\n  #{routing_code}", { after: /concern :resourcable do.*?^\s*end\s*$/m, verbose: true }
        end
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
basepack-1.0.1 lib/generators/rails/basepack_resource_route_generator.rb
basepack-1.0.0 lib/generators/rails/basepack_resource_route_generator.rb
basepack-1.0.0.pre.0 lib/generators/rails/basepack_resource_route_generator.rb
basepack-0.2.0 lib/generators/rails/basepack_resource_route_generator.rb
basepack-0.1.0 lib/generators/rails/basepack_resource_route_generator.rb
basepack-0.0.2 lib/generators/rails/basepack_resource_route_generator.rb