diff --git a/lib/annotate.rb b/lib/annotate.rb index 2e02c8b84..9124b465d 100755 --- a/lib/annotate.rb +++ b/lib/annotate.rb @@ -27,7 +27,7 @@ module Annotate :exclude_fixtures, :exclude_factories, :ignore_model_sub_dir, :format_bare, :format_rdoc, :format_markdown, :sort, :force, :trace, :timestamp, :exclude_serializers, :classified_sort, :show_foreign_keys, - :exclude_scaffolds + :exclude_scaffolds, :exclude_controllers, :exclude_helpers ] OTHER_OPTIONS=[ :ignore_columns, :skip_on_db_migrate, :wrapper_open, :wrapper_close, :wrapper diff --git a/lib/annotate/annotate_models.rb b/lib/annotate/annotate_models.rb index 00f7add8a..bd5f8a4b7 100644 --- a/lib/annotate/annotate_models.rb +++ b/lib/annotate/annotate_models.rb @@ -9,7 +9,7 @@ module AnnotateModels END_MARK = "== Schema Information End" PATTERN = /^\r?\n?# (?:#{COMPAT_PREFIX}|#{COMPAT_PREFIX_MD}).*?\r?\n(#.*\r?\n)*(\r?\n)*/ - MATCHED_TYPES = %w(test fixture factory serializer scaffold) + MATCHED_TYPES = %w(test fixture factory serializer scaffold controller helper) # File.join for windows reverse bar compat? # I dont use windows, can`t test @@ -46,6 +46,12 @@ module AnnotateModels SERIALIZERS_TEST_DIR = File.join("test", "serializers") SERIALIZERS_SPEC_DIR = File.join("spec", "serializers") + # Controller files + CONTROLLER_DIR = File.join("app", "controllers") + + # Helper files + HELPER_DIR = File.join("app", "helpers") + # Don't show limit (#) on these column types # Example: show "integer" instead of "integer(4)" NO_LIMIT_COL_TYPES = ["integer", "boolean"] @@ -111,6 +117,14 @@ def get_patterns(pattern_types=MATCHED_TYPES) File.join(root_directory, SERIALIZERS_TEST_DIR, "%MODEL_NAME%_serializer_spec.rb"), File.join(root_directory, SERIALIZERS_SPEC_DIR, "%MODEL_NAME%_serializer_spec.rb") ] + when 'controller' + [ + File.join(root_directory, CONTROLLER_DIR, "%PLURALIZED_MODEL_NAME%_controller.rb") + ] + when 'helper' + [ + File.join(root_directory, HELPER_DIR, "%PLURALIZED_MODEL_NAME%_helper.rb") + ] end end end @@ -381,6 +395,8 @@ def remove_annotation_of_file(file_name) # :exclude_factories:: whether to skip modification of factory files # :exclude_serializers:: whether to skip modification of serializer files # :exclude_scaffolds:: whether to skip modification of scaffold files + # :exclude_controllers:: whether to skip modification of controller files + # :exclude_helpers:: whether to skip modification of helper files # def annotate(klass, file, header, options={}) begin diff --git a/lib/generators/annotate/templates/auto_annotate_models.rake b/lib/generators/annotate/templates/auto_annotate_models.rake index 483875ff2..99409dfef 100644 --- a/lib/generators/annotate/templates/auto_annotate_models.rake +++ b/lib/generators/annotate/templates/auto_annotate_models.rake @@ -24,6 +24,8 @@ if Rails.env.development? 'exclude_factories' => 'false', 'exclude_serializers' => 'false', 'exclude_scaffolds' => 'false', + 'exclude_controllers' => 'false', + 'exclude_helpers' => 'false', 'ignore_model_sub_dir' => 'false', 'ignore_columns' => nil, 'skip_on_db_migrate' => 'false', diff --git a/lib/tasks/annotate_models.rake b/lib/tasks/annotate_models.rake index 2532be3da..45fee7428 100644 --- a/lib/tasks/annotate_models.rake +++ b/lib/tasks/annotate_models.rake @@ -29,6 +29,8 @@ task :annotate_models => :environment do options[:exclude_fixtures] = Annotate.true?(ENV['exclude_fixtures']) options[:exclude_serializers] = Annotate.true?(ENV['exclude_serializers']) options[:exclude_scaffolds] = Annotate.true?(ENV['exclude_scaffolds']) + options[:exclude_controllers] = Annotate.true?(ENV['exclude_controllers']) + options[:exclude_helpers] = Annotate.true?(ENV['exclude_helpers']) options[:ignore_model_sub_dir] = Annotate.true?(ENV['ignore_model_sub_dir']) options[:format_bare] = Annotate.true?(ENV['format_bare']) options[:format_rdoc] = Annotate.true?(ENV['format_rdoc'])