Sha256: a820c02e7ff0ddd3d2e371103056db22abeb21f417952cd13fda1ea2ca963184
Contents?: true
Size: 1.81 KB
Versions: 1
Compression:
Stored size: 1.81 KB
Contents
# encoding: utf-8 require 'rails_best_practices/reviews/review' module RailsBestPractices module Reviews class RemoveUnusedMethodsInControllersReview < Review include Klassable include Completeable include Callable include InheritedResourcesable interesting_nodes :class interesting_files CONTROLLER_FILES EXCEPT_METHODS = %w(rescue_action) INHERITED_RESOURCES_METHODS = %w(resource collection begin_of_association_chain build_resource) def initialize(options={}) @controller_methods = Prepares.controller_methods @routes = Prepares.routes @inherited_resources = false @except_methods = EXCEPT_METHODS + options['except_methods'] end # mark custom inherited_resources methods as used. def end_class(node) if @inherited_resources INHERITED_RESOURCES_METHODS.each do |method| call_method(method) end end end # get all unused methods at the end of review process. def on_complete @routes.each do |route| if "*" == route.action_name action_names = @controller_methods.get_methods(route.controller_name_with_namespaces).map(&:method_name) action_names.each { |action_name| call_method(action_name, route.controller_name_with_namespaces) } else call_method(route.action_name, route.controller_name_with_namespaces) end end @controller_methods.get_all_unused_methods.each do |method| if !@except_methods.include?(method.method_name) add_error "remove unused methods (#{method.class_name}##{method.method_name})", method.file, method.line end end end protected def methods @controller_methods end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_best_practices-1.4.0 | lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb |