aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorJohn Meehan <john.meehan1@gmail.com>2016-07-05 01:10:24 +0100
committerJohn Meehan <john.meehan1@gmail.com>2016-07-05 01:10:24 +0100
commita5ce8818d29a367ac2a80eeeae649486e1158206 (patch)
treeaa959bce51b5a467aaeb141f7ca389a5726de30a /railties
parent1c7cbe8da62b3adef03328cea13bb25a2ff68643 (diff)
downloadrails-a5ce8818d29a367ac2a80eeeae649486e1158206.tar.gz
rails-a5ce8818d29a367ac2a80eeeae649486e1158206.tar.bz2
rails-a5ce8818d29a367ac2a80eeeae649486e1158206.zip
Allow rake notes to work with other directories.
Additional directories can be added using SourceAnnotationExtractor::Annotation.register_directories("spec", "other_dir") Result: rake notes will now extract notes from these directories.
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/source_annotation_extractor.rb6
-rw-r--r--railties/test/application/rake/notes_test.rb13
2 files changed, 19 insertions, 0 deletions
diff --git a/railties/lib/rails/source_annotation_extractor.rb b/railties/lib/rails/source_annotation_extractor.rb
index ca195bd752..85818fafc9 100644
--- a/railties/lib/rails/source_annotation_extractor.rb
+++ b/railties/lib/rails/source_annotation_extractor.rb
@@ -18,6 +18,12 @@ class SourceAnnotationExtractor
@@directories ||= %w(app config db lib test) + (ENV['SOURCE_ANNOTATION_DIRECTORIES'] || '').split(',')
end
+ # Registers additional directories to be included
+ # SourceAnnotationExtractor::Annotation.register_directories("spec","another")
+ def self.register_directories(*dirs)
+ directories.push(*dirs)
+ end
+
def self.extensions
@@extensions ||= {}
end
diff --git a/railties/test/application/rake/notes_test.rb b/railties/test/application/rake/notes_test.rb
index 50def9beb0..71b7480f64 100644
--- a/railties/test/application/rake/notes_test.rb
+++ b/railties/test/application/rake/notes_test.rb
@@ -126,6 +126,19 @@ module ApplicationTests
end
end
+ test 'register additional directories' do
+ app_file "app/spec/spec_helper.rb", "# TODO: note in spec"
+ app_file "app/spec/models/user_spec.rb", "# TODO: note in model spec"
+ add_to_config %q{ config.annotations.register_directories("spec") }
+
+
+ run_rake_notes do |output, lines|
+ assert_match(/note in spec/, output)
+ assert_match(/note in model spec/, output)
+ assert_equal 2, lines.size
+ end
+ end
+
private
def run_rake_notes(command = 'bin/rails notes')