class RDoc::Context
A Context is something that can hold modules, classes, methods, attributes, aliases, requires, and includes. Classes, modules, and files are all Contexts.
A Context is something that can hold modules, classes, methods, attributes, aliases, requires, and includes. Classes, modules, and files are all Contexts.
Constants
- TOMDOC_TITLES
-
If a context has these titles it will be sorted in this order.
- TYPES
-
Types of methods
Attributes
Class/module aliases
Block params to be used in the next MethodAttr parsed under this context
Hash of registered constants.
Current visibility of this line
Sets the current documentation section of documentation
Modules this context is extended with
Aliases that could not be resolved.
Files this context is found in
Modules this context includes
Hash of registered methods. Attributes are also registered here, twice if they are RW.
Params to be used in the next MethodAttr parsed under this context
Files this context requires
Use this section for the next method, attribute or constant added.
Hash old_name => [aliases], for aliases that haven’t (yet) been resolved to a method/attribute. (Not to be confused with the aliases of the context.)
Current visibility of this context
Public Class Methods
() → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 25
def initialize: () -> void
Creates an unnamed empty context with public current visibility
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 123 def initialize super @in_files = [] @name ||= "unknown" @parent = nil @visibility = :public @current_section = Section.new self, nil, nil @sections = { nil => @current_section } @temporary_section = nil @classes = {} @modules = {} initialize_methods_etc end
Creates an unnamed empty context with public current visibility
RDoc::CodeObject::new
Public Instance Methods
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 171 def <=>(other) return nil unless RDoc::CodeObject === other full_name <=> other.full_name end
Contexts are sorted by full_name
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 183 def add(klass, name, comment) if RDoc::Extend == klass then ext = RDoc::Extend.new name, comment add_extend ext elsif RDoc::Include == klass then incl = RDoc::Include.new name, comment add_include incl else raise NotImplementedError, "adding a #{klass} is not implemented" end end
Adds an item of type klass with the given name and comment to the context.
Currently only RDoc::Extend and RDoc::Include are supported.
(RDoc::Alias an_alias) → RDoc::Alias
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 33
def add_alias: (RDoc::Alias an_alias) -> RDoc::Alias
Adds an_alias that is automatically resolved
(RDoc::Attr attribute) → RDoc::Attr
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 47
def add_attribute: (RDoc::Attr attribute) -> RDoc::Attr
Adds attribute if not already there. If it is (as method(s) or attribute), updates the comment if it was empty.
The attribute is registered only if it defines a new method. For instance, attr_reader :foo will not be registered if method foo exists, but attr_accessor :foo will be registered if method foo exists, but foo= does not.
(class_types class_type, ::String given_name, ?::String superclass) → (RDoc::NormalClass | RDoc::SingleClass)
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 67
def add_class: (class_types class_type, ::String given_name, ?::String superclass) -> (RDoc::NormalClass | RDoc::SingleClass)
Adds a class named given_name with superclass.
Both given_name and superclass may contain ‘::’, and are interpreted relative to the self context. This allows handling correctly examples like these: class RDoc::Gauntlet < Gauntlet module Mod class Object # implies < ::Object class SubObject < Object # this is not ::Object
Given class Container::Item RDoc assumes Container is a module unless it later sees class Container. add_class automatically upgrades given_name to a class in this case.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 398 def add_class_or_module(mod, self_hash, all_hash) mod.section = current_section # TODO declaring context? something is # wrong here... mod.parent = self mod.full_name = nil mod.store = @store unless @done_documenting then self_hash[mod.name] = mod # this must be done AFTER adding mod to its parent, so that the full # name is correct: all_hash[mod.full_name] = mod if @store.unmatched_constant_alias[mod.full_name] then to, file = @store.unmatched_constant_alias[mod.full_name] add_module_alias mod, mod.name, to, file end end mod end
Adds the class or module mod to the modules or classes Hash self_hash, and to all_hash (either TopLevel::modules_hash or TopLevel::classes_hash), unless done_documenting is true. Sets the parent of mod to self, and its section to current_section. Returns mod.
(RDoc::Constant constant) → RDoc::Constant
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 76
def add_constant: (RDoc::Constant constant) -> RDoc::Constant
Adds constant if not already there. If it is, updates the comment, value and/or is_alias_for of the known constant if they were empty/nil.
(RDoc::Extend ext) → RDoc::Extend
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 92
def add_extend: (RDoc::Extend ext) -> RDoc::Extend
Adds extension module ext which should be an RDoc::Extend
(RDoc::Include include) → RDoc::Include
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 84
def add_include: (RDoc::Include `include`) -> RDoc::Include
Adds included module include which should be an RDoc::Include
(RDoc::AnyMethod method) → RDoc::AnyMethod
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 101
def add_method: (RDoc::AnyMethod method) -> RDoc::AnyMethod
Adds method if not already there. If it is (as method or attribute), updates the comment if it was empty.
(singleton(RDoc::NormalModule) class_type, String name) → RDoc::NormalModule
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 110
def add_module: (singleton(RDoc::NormalModule) class_type, String name) -> RDoc::NormalModule
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 555 def add_module_alias(from, from_name, to, file) return from if @done_documenting to_full_name = child_name to.name # if we already know this name, don't register an alias: # see the metaprogramming in lib/active_support/basic_object.rb, # where we already know BasicObject is a class when we find # BasicObject = BlankSlate return from if @store.find_class_or_module to_full_name unless from @store.unmatched_constant_alias[child_name(from_name)] = [to, file] return to end new_to = from.dup new_to.name = to.name new_to.full_name = nil new_to.is_alias_for = from if new_to.module? then @store.modules_hash[to_full_name] = new_to @modules[to.name] = new_to else @store.classes_hash[to_full_name] = new_to @classes[to.name] = new_to end # Registers a constant for this alias. The constant value and comment # will be updated later, when the Ruby parser adds the constant const = RDoc::Constant.new to.name, nil, new_to.comment const.record_location file const.is_alias_for = from add_constant const new_to end
Adds an alias from from (a class or module) to name which was defined in file.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 547 def add_module_by_normal_module(mod) add_class_or_module mod, @modules, @store.modules_hash end
Adds a module by RDoc::NormalModule instance. See also add_module.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 597 def add_require(require) return require unless @document_self if RDoc::TopLevel === self then add_to @requires, require else parent.add_require require end end
Adds require to this context’s top level
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 615 def add_section(title, comment = nil) if section = @sections[title] then section.add_comment comment if comment else section = Section.new self, title, comment, @store @sections[title] = section end section end
Returns a section with title, creating it if it doesn’t already exist. comment will be appended to the section’s comment.
A section with a title of nil will return the default section.
See also RDoc::Context::Section
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 629 def add_to(array, thing) array << thing if @document_self thing.parent = self thing.store = @store if @store thing.section = current_section end
Adds thing to the collection array
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 645 def any_content(includes = true) @any_content ||= !( @comment.empty? && @method_list.empty? && @attributes.empty? && @aliases.empty? && @external_aliases.empty? && @requires.empty? && @constants.empty? ) @any_content || (includes && !(@includes + @extends).empty? ) end
Is there any content?
This means any of: comment, aliases, methods, attributes, external aliases, require, constant.
Includes and extends are also checked unless includes == false.
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 115
def attributes: () -> Array[Attr]
All attr* methods
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 661 def child_name(name) if name =~ /^:+/ $' #' elsif RDoc::TopLevel === self then name else "#{self.full_name}::#{name}" end end
Creates the full name for a child with name
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 674 def class_method_list method_list.select { |a| a.singleton } end
Class methods
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 681 def classes @classes.values end
Array of classes in this context
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 688 def classes_and_modules classes + modules end
All classes and modules in this namespace
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 695 def classes_hash @classes end
Hash of classes keyed by class name
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 120
def constants: () -> Array[Constant]
Constants defined
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 703 def current_section if section = @temporary_section then @temporary_section = nil else section = @current_section end section end
The current documentation section that new items will be added to. If temporary_section is available it will be used.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 734 def each_classmodule(&block) # :yields: module classes_and_modules.sort.each(&block) end
Iterator for classes and modules
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 741 def each_method # :yields: method return enum_for __method__ unless block_given? @method_list.sort.each { |m| yield m } end
Iterator for methods
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 757 def each_section # :yields: section, constants, attributes return enum_for __method__ unless block_given? constants = @constants.group_by do |constant| constant.section end attributes = @attributes.group_by do |attribute| attribute.section end constants.default = [] attributes.default = [] sort_sections.each do |section| yield section, constants[section].select(&:display?).sort, attributes[section].select(&:display?).sort end end
Iterator for each section’s contents sorted by title. The section, the section’s constants and the sections attributes are yielded. The constants and attributes collections are sorted.
To retrieve methods in a section use methods_by_type with the optional section parameter.
NOTE: Do not edit collections yielded by this method
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 774 def find_attribute(name, singleton) name = $1 if name =~ /^(.*)=$/ @attributes.find { |a| a.name == name && a.singleton == singleton } end
Finds an attribute name with singleton value singleton.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 782 def find_attribute_named(name) case name when /\A#/ then find_attribute name[1..-1], false when /\A::/ then find_attribute name[2..-1], true else @attributes.find { |a| a.name == name } end end
Finds an attribute with name in this context
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 796 def find_class_method_named(name) @method_list.find { |meth| meth.singleton && meth.name == name } end
Finds a class method with name in this context
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 803 def find_constant_named(name) @constants.find do |m| m.name == name || m.full_name == name end end
Finds a constant with name in this context
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 815 def find_enclosing_module_named(name) parent && parent.find_module_named(name) end
Tries to find a module at a higher scope. But parent is not always a higher module nesting scope, so the result is not correct. Parent chain can only represent last-opened nesting, and may be broken in some cases. The Ruby parser does not represent module nesting with the parent chain.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 822 def find_external_alias(name, singleton) @external_aliases.find { |m| m.name == name && m.singleton == singleton } end
Finds an external alias name with singleton value singleton.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 829 def find_external_alias_named(name) case name when /\A#/ then find_external_alias name[1..-1], false when /\A::/ then find_external_alias name[2..-1], true else @external_aliases.find { |a| a.name == name } end end
Finds an external alias with name in this context
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 843 def find_instance_method_named(name) @method_list.find { |meth| !meth.singleton && meth.name == name } end
Finds an instance method with name in this context
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 851 def find_local_symbol(symbol) find_method_named(symbol) or find_constant_named(symbol) or find_attribute_named(symbol) or find_external_alias_named(symbol) or find_module_named(symbol) or @store.find_file_named(symbol) end
Finds a method, constant, attribute, external alias, module or file named symbol in this context.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 863 def find_method(name, singleton) @method_list.find { |m| if m.singleton m.name == name && m.singleton == singleton else m.name == name && !m.singleton && !singleton end } end
Finds a method named name with singleton value singleton.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 876 def find_method_named(name) case name when /\A#/ then find_method name[1..-1], false when /\A::/ then find_method name[2..-1], true else @method_list.find { |meth| meth.name == name } end end
Finds a instance or module method with name in this context
(untyped name) → (untyped | self)
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 128
def find_module_named: (untyped name) -> (untyped | self)
Find a module with name using ruby’s scoping rules
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 908 def find_symbol(symbol) find_symbol_module(symbol) || find_local_symbol(symbol) end
Look up symbol, first as a module, then as a local symbol.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 915 def find_symbol_module(symbol) result = nil # look for a class or module 'symbol' case symbol when /^::/ then result = @store.find_class_or_module symbol when /^(\w+):+(.+)$/ suffix = $2 top = $1 searched = self while searched do mod = searched.find_module_named(top) break unless mod result = @store.find_class_or_module "#{mod.full_name}::#{suffix}" break if result || searched.is_a?(RDoc::TopLevel) searched = searched.parent end else searched = self while searched do result = searched.find_module_named(symbol) break if result || searched.is_a?(RDoc::TopLevel) searched = searched.parent end end result end
Look up a module named symbol.
() → "(unknown)"
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 136
def full_name: () -> "(unknown)"
The full name for this context. This method is overridden by subclasses.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 957 def fully_documented? documented? and attributes.all? { |a| a.documented? } and method_list.all? { |m| m.documented? } and constants.all? { |c| c.documented? } end
Does this context and its methods and constants all have documentation?
(Yes, fully documented doesn’t mean everything.)
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 901 def get_module_named(name) @modules[name] || @classes[name] end
Get a module named name in this context Don’t look up for higher module nesting scopes. RDoc::Context doesn’t have that information.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 967 def http_url path = name_for_path path = path.gsub(/<<\s*(\w*)/, 'from-\1') if path =~ /<</ path = path.split('::') File.join(*path.compact) + '.html' end
URL for this with a prefix
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 145 def initialize_methods_etc @method_list = [] @attributes = [] @aliases = [] @requires = [] @includes = [] @extends = [] @constants = [] @external_aliases = [] @current_line_visibility = nil # This Hash maps a method name to a list of unmatched aliases (aliases of # a method not yet encountered). @unmatched_alias_lists = {} @methods_hash = {} @constants_hash = {} @params = nil @store ||= nil end
Sets the defaults for methods and so-forth
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 978 def instance_methods method_list.reject { |a| a.singleton } end
Instance methods
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 141
def method_list: () -> Array[AnyMethod]
Methods defined in this context
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 989 def methods_by_type(section = nil) methods = {} TYPES.each do |type| visibilities = {} RDoc::VISIBILITIES.each do |vis| visibilities[vis] = [] end methods[type] = visibilities end each_method do |method| next if section and not method.section == section methods[method.type][method.visibility] << method end methods end
Breaks method_list into a nested hash by type ('class' or 'instance') and visibility (:public, :protected, :private).
If section is provided only methods in that RDoc::Context::Section will be returned.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1012 def methods_matching(methods, singleton = false, &block) (@method_list + @attributes).each do |m| yield m if methods.include?(m.name) and m.singleton == singleton end each_ancestor do |parent| parent.methods_matching(methods, singleton, &block) end end
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1025 def modules @modules.values end
Array of modules in this context
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1032 def modules_hash @modules end
Hash of modules keyed by module name
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1040 def name_for_path full_name end
Name to use to generate the url. full_name by default.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1047 def ongoing_visibility=(visibility) @visibility = visibility end
Changes the visibility for new methods to visibility
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1054 def record_location(top_level) @in_files << top_level unless @in_files.include?(top_level) end
Record top_level as a file self is in.
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1068 def remove_from_documentation? @remove_from_documentation ||= @received_nodoc && !any_content(false) && @includes.all? { |i| !i.module.is_a?(String) && i.module.remove_from_documentation? } && classes_and_modules.all? { |cm| cm.remove_from_documentation? } end
Should we remove this context from the documentation?
The answer is yes if:
-
received_nodocistrue -
any_contentisfalse(not counting includes) -
All
includesare modules (not a string), and their module has#remove_from_documentation? == true -
All classes and modules have
#remove_from_documentation? == true
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1081 def remove_invisible(min_visibility) return if [:private, :nodoc].include? min_visibility remove_invisible_in @method_list, min_visibility remove_invisible_in @attributes, min_visibility remove_invisible_in @constants, min_visibility end
Removes methods and attributes with a visibility less than min_visibility.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1107 def resolve_aliases(added) # resolve any pending unmatched aliases key = added.pretty_name unmatched_alias_list = @unmatched_alias_lists[key] return unless unmatched_alias_list unmatched_alias_list.each do |unmatched_alias| added.add_alias unmatched_alias, self @external_aliases.delete unmatched_alias end @unmatched_alias_lists.delete key end
Tries to resolve unmatched aliases when a method or attribute has just been added.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1123 def section_contents used_sections = {} each_method do |method| next unless method.display? used_sections[method.section] = true end # order found sections sections = sort_sections.select do |section| used_sections[section] end # only the default section is used return [] if sections.length == 1 and not sections.first.title sections end
Returns RDoc::Context::Section objects referenced in this context for use in a table of contents.
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1147 def sections @sections.values end
Sections in this context
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1176 def set_constant_visibility_for(names, visibility) names.each do |name| constant = @constants_hash[name] or next constant.visibility = visibility end end
Given an array names of constants, set the visibility of each constant to visibility
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1158 def set_current_section(title, comment) @current_section = add_section title, comment end
Sets the current section to a section with title. See also add_section
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1166 def set_visibility_for(methods, visibility, singleton = false) methods_matching methods, singleton do |m| m.visibility = visibility end end
Given an array methods of method names, set the visibility of each to visibility
Source
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1187 def sort_sections titles = @sections.map { |title, _| title } if titles.length > 1 and TOMDOC_TITLES_SORT == (titles | TOMDOC_TITLES).sort_by { |title| title.to_s } then @sections.values_at(*TOMDOC_TITLES).compact else @sections.sort_by { |title, _| title.to_s }.map { |_, section| section } end end
Sorts sections alphabetically (default) or in TomDoc fashion (none, Public, Internal, Deprecated)
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 143
def to_s: () -> ::String
() → RDoc::TopLevel
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/stdlib/rdoc/0/context.rbs, line 151
def top_level: () -> RDoc::TopLevel
Return the TopLevel that owns us
# File vendor/bundle/ruby/4.0.0/gems/rdoc-8.0.0/lib/rdoc/code_object/context.rb, line 1223 def upgrade_to_class(mod, class_type, enclosing) enclosing.modules_hash.delete mod.name klass = RDoc::ClassModule.from_module class_type, mod klass.store = @store # if it was there, then we keep it even if done_documenting @store.classes_hash[mod.full_name] = klass enclosing.classes_hash[mod.name] = klass klass end
Upgrades NormalModule mod in enclosing to a class_type