From 11acb73b81bdec26727a6af125953ad23ae59a4c Mon Sep 17 00:00:00 2001 From: Shanon McQuay Date: Tue, 14 Aug 2012 11:38:28 +1000 Subject: [PATCH] Mark action_controller layout methods as used. --- ...ve_unused_methods_in_controllers_review.rb | 5 +++++ ...used_methods_in_controllers_review_spec.rb | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb b/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb index 4703de20..94f15667 100644 --- a/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb +++ b/lib/rails_best_practices/reviews/remove_unused_methods_in_controllers_review.rb @@ -60,6 +60,11 @@ def start_command(node) end when "around_filter" node.arguments.all.each { |argument| mark_used(argument) } + when "layout" + first_argument = node.arguments.all.first + if first_argument.sexp_type == :symbol_literal + mark_used(first_argument) + end when "helper_method" node.arguments.all.each { |argument| mark_publicize(argument.to_s) } when "delegate" diff --git a/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb b/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb index de20301c..08b253c1 100644 --- a/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb +++ b/spec/rails_best_practices/reviews/remove_unused_methods_in_controllers_review_spec.rb @@ -80,6 +80,28 @@ def set_timestamp runner.should have(0).errors end + it "should not remove unused methods for layout" do + content =<<-EOF + RailsBestPracticesCom::Application.routes.draw do + resources :posts + end + EOF + runner.prepare('config/routes.rb', content) + content =<<-EOF + class PostsController < ActiveRecord::Base + layout :choose_layout + private + def choose_layout + "default" + end + end + EOF + runner.prepare('app/controllers/posts_controller.rb', content) + runner.review('app/controllers/posts_controller.rb', content) + runner.after_review + runner.should have(0).errors + end + it "should not remove inherited_resources methods" do content =<<-EOF RailsBestPracticesCom::Application.routes.draw do