commit
6252ede437
|
@ -22,7 +22,7 @@ class SourceAnnotationExtractor
|
||||||
# If +options+ has a flag <tt>:tag</tt> the tag is shown as in the example above.
|
# 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.
|
# Otherwise the string contains just line and text.
|
||||||
def to_s(options={})
|
def to_s(options={})
|
||||||
s = "[%3d] " % line
|
s = "[#{line.to_s.rjust(options[:indent])}]"
|
||||||
s << "[#{tag}] " if options[:tag]
|
s << "[#{tag}] " if options[:tag]
|
||||||
s << text
|
s << text
|
||||||
end
|
end
|
||||||
|
@ -93,6 +93,7 @@ class SourceAnnotationExtractor
|
||||||
# Prints the mapping from filenames to annotations in +results+ ordered by filename.
|
# Prints the mapping from filenames to annotations in +results+ ordered by filename.
|
||||||
# The +options+ hash is passed to each annotation's +to_s+.
|
# The +options+ hash is passed to each annotation's +to_s+.
|
||||||
def display(results, options={})
|
def display(results, options={})
|
||||||
|
options[:indent] = results.map { |f, a| a.map(&:line) }.flatten.max.to_s.size
|
||||||
results.keys.sort.each do |file|
|
results.keys.sort.each do |file|
|
||||||
puts "#{file}:"
|
puts "#{file}:"
|
||||||
results[file].each do |note|
|
results[file].each do |note|
|
||||||
|
|
|
@ -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.erb", "<% # TODO: note in erb %>"
|
||||||
app_file "app/views/home/index.html.haml", "-# TODO: note in haml"
|
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/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
|
boot_rails
|
||||||
require 'rake'
|
require 'rake'
|
||||||
|
@ -27,10 +28,18 @@ module ApplicationTests
|
||||||
|
|
||||||
Dir.chdir(app_path) do
|
Dir.chdir(app_path) do
|
||||||
output = `bundle exec rake notes`
|
output = `bundle exec rake notes`
|
||||||
|
lines = output.scan(/\[([0-9\s]+)\]/).flatten
|
||||||
|
|
||||||
assert_match /note in erb/, output
|
assert_match /note in erb/, output
|
||||||
assert_match /note in haml/, output
|
assert_match /note in haml/, output
|
||||||
assert_match /note in slim/, 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
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue