aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2012-01-05 13:56:50 -0800
committerJosé Valim <jose.valim@gmail.com>2012-01-05 13:56:50 -0800
commit6252ede43718e389947c7216c79d96a877590b17 (patch)
tree1fa1dd7f0d0d0badde78037d7543a17b37007cef
parent38b0d6d6b9698292f1fdcc9ceb2b3d24ce627019 (diff)
parent9299bfdcd387253d83b645c205b8df477f2d0940 (diff)
downloadrails-6252ede43718e389947c7216c79d96a877590b17.tar.gz
rails-6252ede43718e389947c7216c79d96a877590b17.tar.bz2
rails-6252ede43718e389947c7216c79d96a877590b17.zip
Merge pull request #4192 from mptre/master
Align rake notes
-rw-r--r--railties/lib/rails/source_annotation_extractor.rb3
-rw-r--r--railties/test/application/rake/notes_test.rb9
2 files changed, 11 insertions, 1 deletions
diff --git a/railties/lib/rails/source_annotation_extractor.rb b/railties/lib/rails/source_annotation_extractor.rb
index 2286e0477a..684beb32a3 100644
--- a/railties/lib/rails/source_annotation_extractor.rb
+++ b/railties/lib/rails/source_annotation_extractor.rb
@@ -22,7 +22,7 @@ class SourceAnnotationExtractor
# If +options+ has a flag <tt>:tag</tt> the tag is shown as in the example above.
# Otherwise the string contains just line and text.
def to_s(options={})
- s = "[%3d] " % line
+ s = "[#{line.to_s.rjust(options[:indent])}]"
s << "[#{tag}] " if options[:tag]
s << text
end
@@ -93,6 +93,7 @@ class SourceAnnotationExtractor
# Prints the mapping from filenames to annotations in +results+ ordered by filename.
# The +options+ hash is passed to each annotation's +to_s+.
def display(results, options={})
+ options[:indent] = results.map { |f, a| a.map(&:line) }.flatten.max.to_s.size
results.keys.sort.each do |file|
puts "#{file}:"
results[file].each do |note|
diff --git a/railties/test/application/rake/notes_test.rb b/railties/test/application/rake/notes_test.rb
index 659cbfec0f..f4e74deb83 100644
--- a/railties/test/application/rake/notes_test.rb
+++ b/railties/test/application/rake/notes_test.rb
@@ -17,6 +17,7 @@ module ApplicationTests
app_file "app/views/home/index.html.erb", "<% # TODO: note in erb %>"
app_file "app/views/home/index.html.haml", "-# TODO: note in haml"
app_file "app/views/home/index.html.slim", "/ TODO: note in slim"
+ app_file "app/controllers/application_controller.rb", 1000.times.map { "" }.join("\n") << "# TODO: note in ruby"
boot_rails
require 'rake'
@@ -27,10 +28,18 @@ module ApplicationTests
Dir.chdir(app_path) do
output = `bundle exec rake notes`
+ lines = output.scan(/\[([0-9\s]+)\]/).flatten
assert_match /note in erb/, output
assert_match /note in haml/, output
assert_match /note in slim/, output
+ assert_match /note in ruby/, output
+
+ assert_equal 4, lines.size
+ assert_equal 4, lines[0].size
+ assert_equal 4, lines[1].size
+ assert_equal 4, lines[2].size
+ assert_equal 4, lines[3].size
end
end