Sha256: 71393585a0701c75655624ee46d93bcdc5514af6c03428d8c241c7ecd19b6331

Contents?: true

Size: 1.14 KB

Versions: 7

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module RailsBestPractices
  module Reviews
    # Review config/routes file to make sure not use default route that rails generated.
    #
    # See the best practice details here https://rails-bestpractices.com/posts/2010/07/22/not-use-default-route-if-you-use-restful-design/
    #
    # Implementation:
    #
    # Review process:
    #   check all method command_call or command node to see if it is the same as rails default route.
    #
    #     map.connect ':controller/:action/:id'
    #     map.connect ':controller/:action/:id.:format'
    #
    #   or
    #
    #     match ':controller(/:action(/:id(.:format)))'
    class NotUseDefaultRouteReview < Review
      interesting_nodes :command_call, :command
      interesting_files ROUTE_FILES
      url 'https://rails-bestpractices.com/posts/2010/07/22/not-use-default-route-if-you-use-restful-design/'

      # check all command nodes
      add_callback :start_command do |node|
        if node.message.to_s == 'match' && node.arguments.all.first.to_s == ':controller(/:action(/:id(.:format)))'
          add_error 'not use default route'
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rails_best_practices-1.23.2 lib/rails_best_practices/reviews/not_use_default_route_review.rb
rails_best_practices-1.23.1 lib/rails_best_practices/reviews/not_use_default_route_review.rb
rails_best_practices-1.23.0 lib/rails_best_practices/reviews/not_use_default_route_review.rb
rails_best_practices-1.22.1 lib/rails_best_practices/reviews/not_use_default_route_review.rb
rails_best_practices-1.22.0 lib/rails_best_practices/reviews/not_use_default_route_review.rb
rails_best_practices-1.21.0 lib/rails_best_practices/reviews/not_use_default_route_review.rb
rails_best_practices-1.20.1 lib/rails_best_practices/reviews/not_use_default_route_review.rb