class RDoc::TopLevel
A TopLevel context is a representation of the contents of a single file
Attributes
Absolute name of this file
Base name of this file
All the classes or modules that were declared in this file. These are assigned to either classes_hash or modules_hash once we know what they really are.
Base name of this file
Base name of this file without the extension
The parser class that processed this file
Relative name of this file
Public Class Methods
# File lib/rdoc/code_object/top_level.rb, line 47 def initialize(absolute_name, relative_name = absolute_name) super() @name = nil @absolute_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
Creates a new TopLevel for the file at absolute_name. If documentation is being generated outside the source dir relative_name is relative to the source directory.
RDoc::Context::new
Public Instance Methods
Source
# File lib/rdoc/code_object/top_level.rb, line 77 def ==(other) self.class === other and @relative_name == other.relative_name end
An RDoc::TopLevel is equal to another with the same relative_name
Source
# File lib/rdoc/code_object/top_level.rb, line 86 def add_alias(an_alias) object_class.record_location self return an_alias unless @document_self object_class.add_alias an_alias end
Adds an_alias to Object instead of self.
Source
# File lib/rdoc/code_object/top_level.rb, line 95 def add_constant(constant) object_class.record_location self return constant unless @document_self object_class.add_constant constant end
Adds constant to Object instead of self.
Source
# File lib/rdoc/code_object/top_level.rb, line 104 def add_include(include) object_class.record_location self return include unless @document_self object_class.add_include include end
Adds include to Object instead of self.
Source
# File lib/rdoc/code_object/top_level.rb, line 113 def add_method(method) object_class.record_location self return method unless @document_self object_class.add_method method end
Adds method to Object instead of self.
# File lib/rdoc/code_object/top_level.rb, line 123 def add_to_classes_or_modules(mod) @classes_or_modules << mod end
Adds class or module mod. Used in the building phase by the Ruby parser.
Source
# File lib/rdoc/generator/markup.rb, line 203 def cvs_url url = @store.options.webcvs if /%s/ =~ url url % @relative_name else url + @relative_name end end
Returns a URL for this source file on some web repository. Use the -W command line option to set.
Source
# File lib/rdoc/code_object/top_level.rb, line 135 def find_class_or_module(name) @store.find_class_or_module name end
See RDoc::TopLevel::find_class_or_module
Source
# File lib/rdoc/code_object/top_level.rb, line 142 def find_local_symbol(symbol) find_class_or_module(symbol) || super end
Finds a class or module named symbol
RDoc::Context#find_local_symbol
Source
# File lib/rdoc/code_object/top_level.rb, line 149 def find_module_named(name) find_class_or_module(name) end
Finds a module or class with name
Source
# File lib/rdoc/code_object/top_level.rb, line 158 def full_name @relative_name end
Returns the relative name of this file
Source
# File lib/rdoc/code_object/top_level.rb, line 166 def hash @relative_name.hash end
An RDoc::TopLevel has the same hash as another with the same relative_name
Source
# File lib/rdoc/code_object/top_level.rb, line 173 def http_url @relative_name.tr('.', '_') + '.html' end
URL for this with a prefix
Source
# File lib/rdoc/code_object/top_level.rb, line 189 def marshal_dump [ MARSHAL_VERSION, @relative_name, @parser, parse(@comment), ] end
Dumps this TopLevel for use by ri. See also #marshal_load
Source
# File lib/rdoc/code_object/top_level.rb, line 213 def object_class @object_class ||= begin oc = @store.find_class_named('Object') || add_class(NormalClass, 'Object') oc.record_location self oc end end
Returns the NormalClass “Object”, creating it if not found.
Records self as a location in “Object”.
Source
# File lib/rdoc/code_object/top_level.rb, line 68 def parser=(val) @parser = val @store&.cache_text_file(relative_name) @parser end
Sets the parser for this toplevel context, also the store.
Source
# File lib/rdoc/code_object/top_level.rb, line 224 def path base = if options.main_page == full_name 'index.html' else http_url end prefix = options.file_path_prefix return base unless prefix File.join(prefix, base) end
Path to this file for use with HTML generator output.
Source
# File lib/rdoc/code_object/top_level.rb, line 253 def search_record return unless @parser < Parser::Text [ page_name, '', page_name, '', path, '', search_snippet, ] end
Search record used by RDoc::Generator::JsonIndex
TODO: Remove this method after dropping the darkfish theme and JsonIndex generator. Use search_snippet instead for getting documentation snippets.
Source
# File lib/rdoc/code_object/top_level.rb, line 270 def search_snippet return '' if @comment.empty? snippet(@comment) end
Returns an HTML snippet of the comment for search results.