Class RDoc::Context
In: code_objects.rb
parsers/parse_f95.rb
doc-tmp/rdoc/code_objects.rb
Parent: CodeObject

A Context is something that can hold modules, classes, methods, attributes, aliases, requires, and includes. Classes, modules, and files are all Contexts.

Methods

<=>   <=>   add_alias   add_alias   add_alias   add_attribute   add_attribute   add_class   add_class   add_class_or_module   add_class_or_module   add_constant   add_constant   add_include   add_include   add_method   add_method   add_method   add_module   add_module   add_require   add_require   add_to   add_to   classes   classes   defined_in?   defined_in?   each_attribute   each_attribute   each_classmodule   each_classmodule   each_constant   each_constant   each_includes   each_method   each_method   find_attribute_named   find_attribute_named   find_attribute_named   find_constant_named   find_constant_named   find_constant_named   find_enclosing_module_named   find_enclosing_module_named   find_enclosing_module_named   find_file   find_instance_method_named   find_instance_method_named   find_instance_method_named   find_local_symbol   find_local_symbol   find_local_symbol   find_method_named   find_method_named   find_method_named   find_module_named   find_module_named   find_module_named   find_symbol   find_symbol   find_symbol   include_includes?   include_requires?   initialize_classes_and_modules   initialize_classes_and_modules   initialize_methods_etc   initialize_methods_etc   modules   modules   new   new   ongoing_visibility=   ongoing_visibility=   record_location   record_location   remove_classes_and_modules   remove_classes_and_modules   remove_methods_etc   remove_methods_etc   set_current_section   set_current_section   set_visibility_for   set_visibility_for   toplevel   toplevel  

Public Class methods

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 163
163:     def initialize
164:       super()
165: 
166:       @in_files    = []
167: 
168:       @name    ||= "unknown"
169:       @comment ||= ""
170:       @parent  = nil
171:       @visibility = :public
172: 
173:       @current_section = Section.new(nil, nil)
174:       @sections = [ @current_section ]
175: 
176:       initialize_methods_etc
177:       initialize_classes_and_modules
178:     end

[Source]

     # File code_objects.rb, line 163
163:     def initialize
164:       super()
165: 
166:       @in_files    = []
167: 
168:       @name    ||= "unknown"
169:       @comment ||= ""
170:       @parent  = nil
171:       @visibility = :public
172: 
173:       @current_section = Section.new(nil, nil)
174:       @sections = [ @current_section ]
175: 
176:       initialize_methods_etc
177:       initialize_classes_and_modules
178:     end

Public Instance methods

allow us to sort modules by name

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 370
370:     def <=>(other)
371:       name <=> other.name
372:     end

allow us to sort modules by name

[Source]

     # File code_objects.rb, line 370
370:     def <=>(other)
371:       name <=> other.name
372:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 247
247:     def add_alias(an_alias)
248:       meth = find_instance_method_named(an_alias.old_name)
249:       if meth
250:         new_meth = AnyMethod.new(an_alias.text, an_alias.new_name)
251:         new_meth.is_alias_for = meth
252:         new_meth.singleton    = meth.singleton
253:         new_meth.params       = meth.params
254:         new_meth.comment = "Alias for \##{meth.name}"
255:         meth.add_alias(new_meth)
256:         add_method(new_meth)
257:       else
258:         add_to(@aliases, an_alias)
259:       end
260:     end

[Source]

     # File code_objects.rb, line 247
247:     def add_alias(an_alias)
248:       meth = find_instance_method_named(an_alias.old_name)
249:       if meth
250:         new_meth = AnyMethod.new(an_alias.text, an_alias.new_name)
251:         new_meth.is_alias_for = meth
252:         new_meth.singleton    = meth.singleton
253:         new_meth.params       = meth.params
254:         new_meth.comment = "Alias for \##{meth.name}"
255:         meth.add_alias(new_meth)
256:         add_method(new_meth)
257:       else
258:         add_to(@aliases, an_alias)
259:       end
260:     end

[Source]

     # File parsers/parse_f95.rb, line 557
557:     def add_alias(an_alias, ignore_case=nil)
558:       meth = find_instance_method_named(an_alias.old_name, ignore_case)
559:       if meth
560:         new_meth = AnyMethod.new(an_alias.text, an_alias.new_name)
561:         new_meth.is_alias_for = meth
562:         new_meth.singleton    = meth.singleton
563:         new_meth.params       = meth.params
564:         new_meth.comment = "Alias for \##{meth.name}"
565:         meth.add_alias(new_meth)
566:         add_method(new_meth)
567:       else
568:         add_to(@aliases, an_alias)
569:       end
570:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 243
243:     def add_attribute(an_attribute)
244:       add_to(@attributes, an_attribute)
245:     end

[Source]

     # File code_objects.rb, line 243
243:     def add_attribute(an_attribute)
244:       add_to(@attributes, an_attribute)
245:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 229
229:     def add_class(class_type, name, superclass)
230:       add_class_or_module(@classes, class_type, name, superclass)
231:     end

[Source]

     # File code_objects.rb, line 229
229:     def add_class(class_type, name, superclass)
230:       add_class_or_module(@classes, class_type, name, superclass)
231:     end

[Source]

     # File code_objects.rb, line 279
279:     def add_class_or_module(collection, class_type, name, superclass=nil)
280:       cls = collection[name]
281:       if cls
282:         puts "Reusing class/module #{name}" if $DEBUG_RDOC
283:       else
284:         cls = class_type.new(name, superclass)
285:         puts "Adding class/module #{name} to #@name" if $DEBUG_RDOC
286: #        collection[name] = cls if @document_self  && !@done_documenting
287:         collection[name] = cls if !@done_documenting
288:         cls.parent = self
289:         cls.section = @current_section
290:       end
291:       cls
292:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 279
279:     def add_class_or_module(collection, class_type, name, superclass=nil)
280:       cls = collection[name]
281:       if cls
282:         puts "Reusing class/module #{name}" if $DEBUG_RDOC
283:       else
284:         cls = class_type.new(name, superclass)
285:         puts "Adding class/module #{name} to #@name" if $DEBUG_RDOC
286: #        collection[name] = cls if @document_self  && !@done_documenting
287:         collection[name] = cls if !@done_documenting
288:         cls.parent = self
289:         cls.section = @current_section
290:       end
291:       cls
292:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 266
266:     def add_constant(const)
267:       add_to(@constants, const)
268:     end

[Source]

     # File code_objects.rb, line 266
266:     def add_constant(const)
267:       add_to(@constants, const)
268:     end

[Source]

     # File code_objects.rb, line 262
262:     def add_include(an_include)
263:       add_to(@includes, an_include)
264:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 262
262:     def add_include(an_include)
263:       add_to(@includes, an_include)
264:     end

[Source]

     # File parsers/parse_f95.rb, line 547
547:     def add_method(a_method)
548:       if !(a_method.visibility == :public)      &&
549:            !(a_method.visibility == :private)   &&
550:            !(a_method.visibility == :protected)
551:         a_method.visibility = @visibility
552:       end
553:       puts "Adding #{a_method.visibility} method #{a_method.name} to #@name" if $DEBUG_RDOC
554:       add_to(@method_list, a_method)
555:     end

[Source]

     # File code_objects.rb, line 237
237:     def add_method(a_method)
238:       puts "Adding #@visibility method #{a_method.name} to #@name" if $DEBUG_RDOC
239:       a_method.visibility = @visibility
240:       add_to(@method_list, a_method)
241:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 237
237:     def add_method(a_method)
238:       puts "Adding #@visibility method #{a_method.name} to #@name" if $DEBUG_RDOC
239:       a_method.visibility = @visibility
240:       add_to(@method_list, a_method)
241:     end

[Source]

     # File code_objects.rb, line 233
233:     def add_module(class_type, name)
234:       add_class_or_module(@modules, class_type, name, nil)
235:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 233
233:     def add_module(class_type, name)
234:       add_class_or_module(@modules, class_type, name, nil)
235:     end

Requires always get added to the top-level (file) context

[Source]

     # File code_objects.rb, line 271
271:     def add_require(a_require)
272:       if self.kind_of? TopLevel
273:         add_to(@requires, a_require)
274:       else
275:         parent.add_require(a_require)
276:       end
277:     end

Requires always get added to the top-level (file) context

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 271
271:     def add_require(a_require)
272:       if self.kind_of? TopLevel
273:         add_to(@requires, a_require)
274:       else
275:         parent.add_require(a_require)
276:       end
277:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 294
294:     def add_to(array, thing)
295:       array <<  thing if @document_self  && !@done_documenting
296:       thing.parent = self
297:       thing.section = @current_section
298:     end

[Source]

     # File code_objects.rb, line 294
294:     def add_to(array, thing)
295:       array <<  thing if @document_self  && !@done_documenting
296:       thing.parent = self
297:       thing.section = @current_section
298:     end

map the class hash to an array externally

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 181
181:     def classes
182:       @classes.values
183:     end

map the class hash to an array externally

[Source]

     # File code_objects.rb, line 181
181:     def classes
182:       @classes.values
183:     end

Return true if at least part of this thing was defined in file

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 225
225:     def defined_in?(file)
226:       @in_files.include?(file)
227:     end

Return true if at least part of this thing was defined in file

[Source]

     # File code_objects.rb, line 225
225:     def defined_in?(file)
226:       @in_files.include?(file)
227:     end

[Source]

     # File code_objects.rb, line 352
352:     def each_attribute 
353:       @attributes.each {|a| yield a}
354:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 352
352:     def each_attribute 
353:       @attributes.each {|a| yield a}
354:     end

Iterate over all the classes and modules in this object

[Source]

     # File code_objects.rb, line 343
343:     def each_classmodule
344:       @modules.each_value {|m| yield m}
345:       @classes.each_value {|c| yield c}
346:     end

Iterate over all the classes and modules in this object

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 343
343:     def each_classmodule
344:       @modules.each_value {|m| yield m}
345:       @classes.each_value {|c| yield c}
346:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 356
356:     def each_constant
357:       @constants.each {|c| yield c}
358:     end

[Source]

     # File code_objects.rb, line 356
356:     def each_constant
357:       @constants.each {|c| yield c}
358:     end

[Source]

     # File parsers/parse_f95.rb, line 603
603:     def each_includes
604:       @includes.each {|i| yield i}
605:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 348
348:     def each_method
349:       @method_list.each {|m| yield m}
350:     end

[Source]

     # File code_objects.rb, line 348
348:     def each_method
349:       @method_list.each {|m| yield m}
350:     end

Find a named attribute, or return nil

[Source]

     # File code_objects.rb, line 454
454:     def find_attribute_named(name)
455:       @attributes.find {|m| m.name == name}
456:     end

Find a named attribute, or return nil

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 454
454:     def find_attribute_named(name)
455:       @attributes.find {|m| m.name == name}
456:     end

Find a named attribute, or return nil

[Source]

     # File parsers/parse_f95.rb, line 722
722:     def find_attribute_named(name, ignore_case=nil)
723:       if !ignore_case
724:         @attributes.find {|m| m.name == name}
725:       else
726:         @attributes.find {|m| m.name.upcase == name.upcase}
727:       end
728:     end

Find a named constant, or return nil

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 449
449:     def find_constant_named(name)
450:       @constants.find {|m| m.name == name}
451:     end

Find a named constant, or return nil

[Source]

     # File code_objects.rb, line 449
449:     def find_constant_named(name)
450:       @constants.find {|m| m.name == name}
451:     end

Find a named constant, or return nil

[Source]

     # File parsers/parse_f95.rb, line 713
713:     def find_constant_named(name, ignore_case=nil)
714:       if !ignore_case
715:         @constants.find {|m| m.name == name}
716:       else
717:         @constants.find {|m| m.name.upcase == name.upcase}
718:       end
719:     end

find a module at a higher scope

[Source]

     # File code_objects.rb, line 336
336:     def find_enclosing_module_named(name)
337:       parent && parent.find_module_named(name)
338:     end

find a module at a higher scope

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 336
336:     def find_enclosing_module_named(name)
337:       parent && parent.find_module_named(name)
338:     end

find a module at a higher scope

[Source]

     # File parsers/parse_f95.rb, line 599
599:     def find_enclosing_module_named(name, ignore_case=nil)
600:       parent && parent.find_module_named(name, ignore_case)
601:     end

Look up the given filename.

[Source]

     # File parsers/parse_f95.rb, line 608
608:     def find_file(file, method=nil, ignore_case=nil)
609:       find_file_named(file, method, ignore_case)
610:     end

Find a named instance method, or return nil

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 444
444:     def find_instance_method_named(name)
445:       @method_list.find {|meth| meth.name == name && !meth.singleton}
446:     end

Find a named instance method, or return nil

[Source]

     # File code_objects.rb, line 444
444:     def find_instance_method_named(name)
445:       @method_list.find {|meth| meth.name == name && !meth.singleton}
446:     end

Find a named instance method, or return nil

[Source]

     # File parsers/parse_f95.rb, line 702
702:     def find_instance_method_named(name, ignore_case=nil)
703:       if !ignore_case
704:         @method_list.find {|meth| meth.name == name && !meth.singleton}
705:       else
706:         @method_list.find {|meth| 
707:           meth.name.upcase == name.upcase && !meth.singleton
708:         } 
709:       end
710:     end

[Source]

     # File code_objects.rb, line 422
422:     def find_local_symbol(symbol)
423:       res = find_method_named(symbol) ||
424:             find_constant_named(symbol) ||
425:             find_attribute_named(symbol) ||
426:             find_module_named(symbol) 
427:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 422
422:     def find_local_symbol(symbol)
423:       res = find_method_named(symbol) ||
424:             find_constant_named(symbol) ||
425:             find_attribute_named(symbol) ||
426:             find_module_named(symbol) 
427:     end

[Source]

     # File parsers/parse_f95.rb, line 661
661:     def find_local_symbol(symbol, ignore_case=nil)
662:       res = find_method_named(symbol, ignore_case) ||
663:             find_constant_named(symbol, ignore_case) ||
664:             find_attribute_named(symbol, ignore_case) ||
665:             find_module_named(symbol, ignore_case) 
666:     end

Find a named method, or return nil

[Source]

     # File code_objects.rb, line 439
439:     def find_method_named(name)
440:       @method_list.find {|meth| meth.name == name}
441:     end

Find a named method, or return nil

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 439
439:     def find_method_named(name)
440:       @method_list.find {|meth| meth.name == name}
441:     end

Find a named method, or return nil

[Source]

     # File parsers/parse_f95.rb, line 693
693:     def find_method_named(name, ignore_case=nil)
694:       if !ignore_case
695:         @method_list.find {|meth| meth.name == name}
696:       else
697:         @method_list.find {|meth| meth.name.upcase == name.upcase}
698:       end
699:     end

Find a named module

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 328
328:     def find_module_named(name)
329:       return self if self.name == name
330:       res = @modules[name] || @classes[name]
331:       return res if res
332:       find_enclosing_module_named(name)
333:     end

Find a named module

[Source]

     # File code_objects.rb, line 328
328:     def find_module_named(name)
329:       return self if self.name == name
330:       res = @modules[name] || @classes[name]
331:       return res if res
332:       find_enclosing_module_named(name)
333:     end

Find a named module

[Source]

     # File parsers/parse_f95.rb, line 573
573:     def find_module_named(name, ignore_case=nil)
574:       res = nil
575:       if !ignore_case
576:         return self if self.name == name
577:       else
578:         return self if self.name.upcase == name.upcase
579:       end
580:       if !ignore_case
581:         res = @modules[name] || @classes[name]
582:       else
583:         @modules.each{ |n, v|
584:           if n.upcase == name.upcase
585:             res = v ; break
586:           end
587:         }
588:         @classes.each{ |n, v|
589:           if n.upcase == name.upcase
590:             res = v ; break
591:           end
592:         } if !res
593:       end
594:       return res if res
595:       find_enclosing_module_named(name, ignore_case)
596:     end

Look up the given symbol. If method is non-nil, then we assume the symbol references a module that contains that method

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 377
377:     def find_symbol(symbol, method=nil)
378:       result = nil
379:       case symbol
380:       when /^::(.*)/
381:         result = toplevel.find_symbol($1)
382:       when /::/
383:         modules = symbol.split(/::/)
384:         unless modules.empty?
385:           module_name = modules.shift
386:           result = find_module_named(module_name)
387:           if result
388:             modules.each do |name|
389:               result = result.find_module_named(name)
390:               break unless result
391:             end
392:           end
393:         end
394:       else
395:         # if a method is specified, then we're definitely looking for
396:         # a module, otherwise it could be any symbol
397:         if method
398:           result = find_module_named(symbol)
399:         else
400:           result = find_local_symbol(symbol)
401:           if result.nil?
402:             if symbol =~ /^[A-Z]/
403:               result = parent
404:               while result && result.name != symbol
405:                 result = result.parent
406:               end
407:             end
408:           end
409:         end
410:       end
411:       if result && method
412:         if !result.respond_to?(:find_local_symbol)
413:           p result.name
414:           p method
415:           fail
416:         end
417:         result = result.find_local_symbol(method)
418:       end
419:       result
420:     end

Look up the given symbol. If method is non-nil, then we assume the symbol references a module that contains that method

[Source]

     # File code_objects.rb, line 377
377:     def find_symbol(symbol, method=nil)
378:       result = nil
379:       case symbol
380:       when /^::(.*)/
381:         result = toplevel.find_symbol($1)
382:       when /::/
383:         modules = symbol.split(/::/)
384:         unless modules.empty?
385:           module_name = modules.shift
386:           result = find_module_named(module_name)
387:           if result
388:             modules.each do |name|
389:               result = result.find_module_named(name)
390:               break unless result
391:             end
392:           end
393:         end
394:       else
395:         # if a method is specified, then we're definitely looking for
396:         # a module, otherwise it could be any symbol
397:         if method
398:           result = find_module_named(symbol)
399:         else
400:           result = find_local_symbol(symbol)
401:           if result.nil?
402:             if symbol =~ /^[A-Z]/
403:               result = parent
404:               while result && result.name != symbol
405:                 result = result.parent
406:               end
407:             end
408:           end
409:         end
410:       end
411:       if result && method
412:         if !result.respond_to?(:find_local_symbol)
413:           p result.name
414:           p method
415:           fail
416:         end
417:         result = result.find_local_symbol(method)
418:       end
419:       result
420:     end

Look up the given symbol. If method is non-nil, then we assume the symbol references a module that contains that method

[Source]

     # File parsers/parse_f95.rb, line 615
615:     def find_symbol(symbol, method=nil, ignore_case=nil)
616:       result = nil
617:       case symbol
618:       when /^::(.*)/
619:         result = toplevel.find_symbol($1, nil, ignore_case)
620:       when /::/
621:         modules = symbol.split(/::/)
622:         unless modules.empty?
623:           module_name = modules.shift
624:           result = find_module_named(module_name, ignore_case)
625:           if result
626:             modules.each do |module_name|
627:               result = result.find_module_named(module_name, ignore_case)
628:               break unless result
629:             end
630:           end
631:         end
632:       else
633:         # if a method is specified, then we're definitely looking for
634:         # a module, otherwise it could be any symbol
635:         if method
636:           result = find_module_named(symbol, ignore_case)
637:         else
638:           result = find_local_symbol(symbol, ignore_case)
639:           if result.nil?
640:             if symbol =~ /^[A-Z]/ ||
641:                        symbol =~ /^[A-Za-z]/ && ignore_case
642:               result = parent
643:               while result && result.name != symbol
644:                 result = result.parent
645:               end
646:             end
647:           end
648:         end
649:       end
650:       if result && method
651:         if !result.respond_to?(:find_local_symbol)
652:           p result.name
653:           p method
654:           fail
655:         end
656:         result = result.find_local_symbol(method, ignore_case)
657:       end
658:       result
659:     end

[Source]

     # File parsers/parse_f95.rb, line 682
682:     def include_includes?(name, ignore_case=nil)
683:       self.includes.each{|i|
684:         if i.name == name ||
685:             i.name.upcase == name.upcase && ignore_case
686:           return true
687:         end
688:       }
689:       return false
690:     end

[Source]

     # File parsers/parse_f95.rb, line 668
668:     def include_requires?(name, ignore_case=nil)
669:       if self.kind_of? TopLevel
670:         self.requires.each{|r|
671:           if r.name == name ||
672:               r.name.upcase == name.upcase && ignore_case
673:             return true
674:           end
675:         }
676:         return false
677:       else
678:         parent.include_requires?(name)
679:       end
680:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 322
322:     def initialize_classes_and_modules
323:       @classes     = {}
324:       @modules     = {}
325:     end

[Source]

     # File code_objects.rb, line 322
322:     def initialize_classes_and_modules
323:       @classes     = {}
324:       @modules     = {}
325:     end

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 308
308:     def initialize_methods_etc
309:       @method_list = []
310:       @attributes  = []
311:       @aliases     = []
312:       @requires    = []
313:       @includes    = []
314:       @constants   = []
315:     end

[Source]

     # File code_objects.rb, line 308
308:     def initialize_methods_etc
309:       @method_list = []
310:       @attributes  = []
311:       @aliases     = []
312:       @requires    = []
313:       @includes    = []
314:       @constants   = []
315:     end

map the module hash to an array externally

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 186
186:     def modules
187:       @modules.values
188:     end

map the module hash to an array externally

[Source]

     # File code_objects.rb, line 186
186:     def modules
187:       @modules.values
188:     end

Change the default visibility for new methods

[Source]

     # File code_objects.rb, line 191
191:     def ongoing_visibility=(vis)
192:       @visibility = vis
193:     end

Change the default visibility for new methods

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 191
191:     def ongoing_visibility=(vis)
192:       @visibility = vis
193:     end

Record the file that we happen to find it in

[Source]

     # File code_objects.rb, line 220
220:     def record_location(toplevel)
221:       @in_files << toplevel unless @in_files.include?(toplevel)
222:     end

Record the file that we happen to find it in

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 220
220:     def record_location(toplevel)
221:       @in_files << toplevel unless @in_files.include?(toplevel)
222:     end

and remove classes and modules when we see a :nodoc: all

[Source]

     # File code_objects.rb, line 318
318:     def remove_classes_and_modules
319:       initialize_classes_and_modules
320:     end

and remove classes and modules when we see a :nodoc: all

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 318
318:     def remove_classes_and_modules
319:       initialize_classes_and_modules
320:     end

If a class‘s documentation is turned off after we‘ve started collecting methods etc., we need to remove the ones we have

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 304
304:     def remove_methods_etc
305:       initialize_methods_etc
306:     end

If a class‘s documentation is turned off after we‘ve started collecting methods etc., we need to remove the ones we have

[Source]

     # File code_objects.rb, line 304
304:     def remove_methods_etc
305:       initialize_methods_etc
306:     end

Handle sections

[Source]

     # File code_objects.rb, line 431
431:     def set_current_section(title, comment)
432:       @current_section = Section.new(title, comment)
433:       @sections << @current_section
434:     end

Handle sections

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 431
431:     def set_current_section(title, comment)
432:       @current_section = Section.new(title, comment)
433:       @sections << @current_section
434:     end

Given an array methods of method names, set the visibility of the corresponding AnyMethod object

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 198
198:     def set_visibility_for(methods, vis, singleton=false)
199:       count = 0
200:       @method_list.each do |m|
201:         if methods.include?(m.name) && m.singleton == singleton
202:           m.visibility = vis
203:           count += 1
204:         end
205:       end
206: 
207:       return if count == methods.size || singleton
208: 
209:       # perhaps we need to look at attributes
210: 
211:       @attributes.each do |a|
212:         if methods.include?(a.name)
213:           a.visibility = vis
214:           count += 1
215:         end
216:       end
217:     end

Given an array methods of method names, set the visibility of the corresponding AnyMethod object

[Source]

     # File code_objects.rb, line 198
198:     def set_visibility_for(methods, vis, singleton=false)
199:       count = 0
200:       @method_list.each do |m|
201:         if methods.include?(m.name) && m.singleton == singleton
202:           m.visibility = vis
203:           count += 1
204:         end
205:       end
206: 
207:       return if count == methods.size || singleton
208: 
209:       # perhaps we need to look at attributes
210: 
211:       @attributes.each do |a|
212:         if methods.include?(a.name)
213:           a.visibility = vis
214:           count += 1
215:         end
216:       end
217:     end

Return the toplevel that owns us

[Source]

     # File code_objects.rb, line 362
362:     def toplevel
363:       return @toplevel if defined? @toplevel
364:       @toplevel = self
365:       @toplevel = @toplevel.parent until TopLevel === @toplevel
366:       @toplevel
367:     end

Return the toplevel that owns us

[Source]

     # File doc-tmp/rdoc/code_objects.rb, line 362
362:     def toplevel
363:       return @toplevel if defined? @toplevel
364:       @toplevel = self
365:       @toplevel = @toplevel.parent until TopLevel === @toplevel
366:       @toplevel
367:     end

[Validate]