diff --git a/lib/rdoc/code_object/top_level.rb b/lib/rdoc/code_object/top_level.rb index 93d318901b..c1c003130e 100644 --- a/lib/rdoc/code_object/top_level.rb +++ b/lib/rdoc/code_object/top_level.rb @@ -16,6 +16,16 @@ class RDoc::TopLevel < RDoc::Context attr_accessor :absolute_name + ## + # Base name of this file + + attr_reader :base_name + + ## + # Base name of this file without the extension + + attr_reader :page_name + ## # All the classes or modules that were declared in # this file. These are assigned to either +#classes_hash+ @@ -40,6 +50,14 @@ def initialize(absolute_name, relative_name = absolute_name) @relative_name = relative_name @parser = nil + if relative_name + @base_name = File.basename(relative_name) + @page_name = @base_name.sub(/\.(rb|rdoc|txt|md)\z/i, '') + else + @base_name = nil + @page_name = nil + end + @classes_or_modules = [] end @@ -105,13 +123,6 @@ def add_to_classes_or_modules(mod) @classes_or_modules << mod end - ## - # Base name of this file - - def base_name - File.basename @relative_name - end - alias name base_name ## @@ -204,16 +215,6 @@ def object_class end end - ## - # Base name of this file without the extension - - def page_name - basename = File.basename @relative_name - basename =~ /\.(rb|rdoc|txt|md)$/i - - $` || basename - end - ## # Path to this file for use with HTML generator output. diff --git a/lib/rdoc/parser/ruby_tools.rb b/lib/rdoc/parser/ruby_tools.rb index 40ea517c4d..3739f4627d 100644 --- a/lib/rdoc/parser/ruby_tools.rb +++ b/lib/rdoc/parser/ruby_tools.rb @@ -20,7 +20,7 @@ def get_tk if @tokens.empty? then if @scanner_point >= @scanner.size - return nil + return else tk = @scanner[@scanner_point] @scanner_point += 1 @@ -31,16 +31,14 @@ def get_tk tk = @tokens.shift end - if tk == nil || :on___end__ == tk[:kind] - tk = nil + if tk.nil? || :on___end__ == tk[:kind] + return end - return nil unless tk - # inform any listeners of our shiny new token - @token_listeners.each do |obj| + @token_listeners&.each do |obj| obj.add_token(tk) - end if @token_listeners + end tk end