diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rdoc/usage.rb | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/lib/rdoc/usage.rb b/lib/rdoc/usage.rb index 3e64cd6433..3a3718e2d3 100644 --- a/lib/rdoc/usage.rb +++ b/lib/rdoc/usage.rb @@ -128,24 +128,31 @@ module RDoc # Find the first comment in the file (that isn't a shebang line) # If the file doesn't start with a comment, report the fact - # and return nil + # and return empty string - def RDoc.find_comment(file) - # skip leading blank lines and shebangs - while line = file.gets - break unless line =~ /^(#!|\s*$)/ + def RDoc.gets(file) + if (line = file.gets) && (line =~ /^#!/) # shebang + throw :exit, find_comment(file) + else + line end + end - comment = [] + def RDoc.find_comment(file) + catch (:exit) do + # skip leading blank lines + 0 while (line = gets(file)) && (line =~ /^\s*$/) + + comment = [] + while line && line =~ /^\s*#/ + comment << line + line = gets(file) + end - while line && line =~ /^\s*#/ - comment << line - line = file.gets + 0 while line && (line = gets(file)) + return no_comment if comment.empty? + return comment.join end - - return no_comment if comment.empty? - - comment.join end @@ -167,7 +174,7 @@ module RDoc if copy_upto_level && item.level >= copy_upto_level copy_upto_level = nil else - if item.text[0].downcase == name + if item.text.downcase == name result << item copy_upto_level = item.level end @@ -191,7 +198,7 @@ module RDoc # Report the fact that no doc comment count be found def RDoc.no_comment $stderr.puts "No usage information available for this program" - nil + "" end end |