voloko-sdoc 0.1.7 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/LICENSE +21 -0
  2. data/VERSION.yml +4 -0
  3. data/lib/sdoc/generator/shtml.rb +1 -4
  4. data/lib/sdoc.rb +0 -1
  5. metadata +32 -101
  6. data/rdoc/History.txt +0 -254
  7. data/rdoc/Manifest.txt +0 -126
  8. data/rdoc/README.txt +0 -47
  9. data/rdoc/RI.txt +0 -58
  10. data/rdoc/Rakefile +0 -70
  11. data/rdoc/bin/rdoc +0 -35
  12. data/rdoc/bin/ri +0 -5
  13. data/rdoc/lib/rdoc/alias.rb +0 -54
  14. data/rdoc/lib/rdoc/anon_class.rb +0 -10
  15. data/rdoc/lib/rdoc/any_method.rb +0 -190
  16. data/rdoc/lib/rdoc/attr.rb +0 -79
  17. data/rdoc/lib/rdoc/cache.rb +0 -41
  18. data/rdoc/lib/rdoc/class_module.rb +0 -87
  19. data/rdoc/lib/rdoc/code_object.rb +0 -152
  20. data/rdoc/lib/rdoc/code_objects.rb +0 -23
  21. data/rdoc/lib/rdoc/constant.rb +0 -36
  22. data/rdoc/lib/rdoc/context.rb +0 -712
  23. data/rdoc/lib/rdoc/diagram.rb +0 -340
  24. data/rdoc/lib/rdoc/dot.rb +0 -249
  25. data/rdoc/lib/rdoc/generator/darkfish.rb +0 -455
  26. data/rdoc/lib/rdoc/generator/markup.rb +0 -194
  27. data/rdoc/lib/rdoc/generator/ri.rb +0 -230
  28. data/rdoc/lib/rdoc/generator/template/darkfish/classpage.rhtml +0 -281
  29. data/rdoc/lib/rdoc/generator/template/darkfish/filepage.rhtml +0 -112
  30. data/rdoc/lib/rdoc/generator/template/darkfish/images/brick.png +0 -0
  31. data/rdoc/lib/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
  32. data/rdoc/lib/rdoc/generator/template/darkfish/images/bug.png +0 -0
  33. data/rdoc/lib/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
  34. data/rdoc/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
  35. data/rdoc/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
  36. data/rdoc/lib/rdoc/generator/template/darkfish/images/date.png +0 -0
  37. data/rdoc/lib/rdoc/generator/template/darkfish/images/find.png +0 -0
  38. data/rdoc/lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif +0 -0
  39. data/rdoc/lib/rdoc/generator/template/darkfish/images/macFFBgHack.png +0 -0
  40. data/rdoc/lib/rdoc/generator/template/darkfish/images/package.png +0 -0
  41. data/rdoc/lib/rdoc/generator/template/darkfish/images/page_green.png +0 -0
  42. data/rdoc/lib/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
  43. data/rdoc/lib/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
  44. data/rdoc/lib/rdoc/generator/template/darkfish/images/plugin.png +0 -0
  45. data/rdoc/lib/rdoc/generator/template/darkfish/images/ruby.png +0 -0
  46. data/rdoc/lib/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
  47. data/rdoc/lib/rdoc/generator/template/darkfish/images/wrench.png +0 -0
  48. data/rdoc/lib/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
  49. data/rdoc/lib/rdoc/generator/template/darkfish/images/zoom.png +0 -0
  50. data/rdoc/lib/rdoc/generator/template/darkfish/index.rhtml +0 -64
  51. data/rdoc/lib/rdoc/generator/template/darkfish/js/darkfish.js +0 -116
  52. data/rdoc/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -32
  53. data/rdoc/lib/rdoc/generator/template/darkfish/js/quicksearch.js +0 -114
  54. data/rdoc/lib/rdoc/generator/template/darkfish/js/thickbox-compressed.js +0 -10
  55. data/rdoc/lib/rdoc/generator/template/darkfish/rdoc.css +0 -696
  56. data/rdoc/lib/rdoc/generator.rb +0 -8
  57. data/rdoc/lib/rdoc/ghost_method.rb +0 -8
  58. data/rdoc/lib/rdoc/include.rb +0 -39
  59. data/rdoc/lib/rdoc/known_classes.rb +0 -68
  60. data/rdoc/lib/rdoc/markup/attribute_manager.rb +0 -311
  61. data/rdoc/lib/rdoc/markup/formatter.rb +0 -25
  62. data/rdoc/lib/rdoc/markup/fragments.rb +0 -377
  63. data/rdoc/lib/rdoc/markup/inline.rb +0 -126
  64. data/rdoc/lib/rdoc/markup/lines.rb +0 -156
  65. data/rdoc/lib/rdoc/markup/preprocess.rb +0 -80
  66. data/rdoc/lib/rdoc/markup/to_flow.rb +0 -211
  67. data/rdoc/lib/rdoc/markup/to_html.rb +0 -406
  68. data/rdoc/lib/rdoc/markup/to_html_crossref.rb +0 -140
  69. data/rdoc/lib/rdoc/markup/to_latex.rb +0 -328
  70. data/rdoc/lib/rdoc/markup/to_test.rb +0 -53
  71. data/rdoc/lib/rdoc/markup/to_texinfo.rb +0 -73
  72. data/rdoc/lib/rdoc/markup.rb +0 -378
  73. data/rdoc/lib/rdoc/meta_method.rb +0 -8
  74. data/rdoc/lib/rdoc/normal_class.rb +0 -18
  75. data/rdoc/lib/rdoc/normal_module.rb +0 -34
  76. data/rdoc/lib/rdoc/options.rb +0 -542
  77. data/rdoc/lib/rdoc/parser/c.rb +0 -678
  78. data/rdoc/lib/rdoc/parser/perl.rb +0 -165
  79. data/rdoc/lib/rdoc/parser/ruby.rb +0 -2904
  80. data/rdoc/lib/rdoc/parser/simple.rb +0 -39
  81. data/rdoc/lib/rdoc/parser.rb +0 -138
  82. data/rdoc/lib/rdoc/rdoc.rb +0 -375
  83. data/rdoc/lib/rdoc/require.rb +0 -32
  84. data/rdoc/lib/rdoc/ri/cache.rb +0 -187
  85. data/rdoc/lib/rdoc/ri/descriptions.rb +0 -156
  86. data/rdoc/lib/rdoc/ri/display.rb +0 -340
  87. data/rdoc/lib/rdoc/ri/driver.rb +0 -828
  88. data/rdoc/lib/rdoc/ri/formatter.rb +0 -654
  89. data/rdoc/lib/rdoc/ri/paths.rb +0 -93
  90. data/rdoc/lib/rdoc/ri/reader.rb +0 -106
  91. data/rdoc/lib/rdoc/ri/util.rb +0 -79
  92. data/rdoc/lib/rdoc/ri/writer.rb +0 -68
  93. data/rdoc/lib/rdoc/ri.rb +0 -8
  94. data/rdoc/lib/rdoc/single_class.rb +0 -8
  95. data/rdoc/lib/rdoc/stats.rb +0 -178
  96. data/rdoc/lib/rdoc/task.rb +0 -276
  97. data/rdoc/lib/rdoc/tokenstream.rb +0 -33
  98. data/rdoc/lib/rdoc/top_level.rb +0 -242
  99. data/rdoc/lib/rdoc.rb +0 -398
@@ -1,712 +0,0 @@
1
- require 'thread'
2
- require 'rdoc/code_object'
3
-
4
- ##
5
- # A Context is something that can hold modules, classes, methods, attributes,
6
- # aliases, requires, and includes. Classes, modules, and files are all
7
- # Contexts.
8
-
9
- class RDoc::Context < RDoc::CodeObject
10
-
11
- ##
12
- # Types of methods
13
-
14
- TYPES = %w[class instance]
15
-
16
- ##
17
- # Method visibilities
18
-
19
- VISIBILITIES = [:public, :protected, :private]
20
-
21
- ##
22
- # Aliased methods
23
-
24
- attr_reader :aliases
25
-
26
- ##
27
- # attr* methods
28
-
29
- attr_reader :attributes
30
-
31
- ##
32
- # Constants defined
33
-
34
- attr_reader :constants
35
-
36
- ##
37
- # Current section of documentation
38
-
39
- attr_reader :current_section
40
-
41
- ##
42
- # Files this context is found in
43
-
44
- attr_reader :in_files
45
-
46
- ##
47
- # Modules this context includes
48
-
49
- attr_reader :includes
50
-
51
- ##
52
- # Methods defined in this context
53
-
54
- attr_reader :method_list
55
-
56
- ##
57
- # Name of this class excluding namespace. See also full_name
58
-
59
- attr_reader :name
60
-
61
- ##
62
- # Files this context requires
63
-
64
- attr_reader :requires
65
-
66
- ##
67
- # Sections in this context
68
-
69
- attr_reader :sections
70
-
71
- ##
72
- # Aliases that haven't been resolved to a method
73
-
74
- attr_accessor :unmatched_alias_lists
75
-
76
- ##
77
- # Current visibility of this context
78
-
79
- attr_reader :visibility
80
-
81
- ##
82
- # A per-comment section of documentation like:
83
- #
84
- # # :SECTION: The title
85
- # # The body
86
-
87
- class Section
88
-
89
- ##
90
- # Section comment
91
-
92
- attr_reader :comment
93
-
94
- ##
95
- # Context this Section lives in
96
-
97
- attr_reader :parent
98
-
99
- ##
100
- # Section sequence number (for linking)
101
-
102
- attr_reader :sequence
103
-
104
- ##
105
- # Section title
106
-
107
- attr_reader :title
108
-
109
- @@sequence = "SEC00000"
110
- @@sequence_lock = Mutex.new
111
-
112
- ##
113
- # Creates a new section with +title+ and +comment+
114
-
115
- def initialize(parent, title, comment)
116
- @parent = parent
117
- @title = title
118
-
119
- @@sequence_lock.synchronize do
120
- @@sequence.succ!
121
- @sequence = @@sequence.dup
122
- end
123
-
124
- set_comment comment
125
- end
126
-
127
- ##
128
- # Sections are equal when they have the same #sequence
129
-
130
- def ==(other)
131
- self.class === other and @sequence == other.sequence
132
- end
133
-
134
- def inspect # :nodoc:
135
- "#<%s:0x%x %s %p>" % [
136
- self.class, object_id,
137
- @sequence, title
138
- ]
139
- end
140
-
141
- ##
142
- # Set the comment for this section from the original comment block If
143
- # the first line contains :section:, strip it and use the rest.
144
- # Otherwise remove lines up to the line containing :section:, and look
145
- # for those lines again at the end and remove them. This lets us write
146
- #
147
- # # blah blah blah
148
- # #
149
- # # :SECTION: The title
150
- # # The body
151
-
152
- def set_comment(comment)
153
- return unless comment
154
-
155
- if comment =~ /^#[ \t]*:section:.*\n/ then
156
- start = $`
157
- rest = $'
158
-
159
- if start.empty?
160
- @comment = rest
161
- else
162
- @comment = rest.sub(/#{start.chomp}\Z/, '')
163
- end
164
- else
165
- @comment = comment
166
- end
167
-
168
- @comment = nil if @comment.empty?
169
- end
170
-
171
- end
172
-
173
- ##
174
- # Creates an unnamed empty context with public visibility
175
-
176
- def initialize
177
- super
178
-
179
- @in_files = []
180
-
181
- @name ||= "unknown"
182
- @comment ||= ""
183
- @parent = nil
184
- @visibility = :public
185
-
186
- @current_section = Section.new self, nil, nil
187
- @sections = [@current_section]
188
-
189
- initialize_methods_etc
190
- initialize_classes_and_modules
191
- end
192
-
193
- ##
194
- # Sets the defaults for classes and modules
195
-
196
- def initialize_classes_and_modules
197
- @classes = {}
198
- @modules = {}
199
- end
200
-
201
- ##
202
- # Sets the defaults for methods and so-forth
203
-
204
- def initialize_methods_etc
205
- @method_list = []
206
- @attributes = []
207
- @aliases = []
208
- @requires = []
209
- @includes = []
210
- @constants = []
211
-
212
- # This Hash maps a method name to a list of unmatched aliases (aliases of
213
- # a method not yet encountered).
214
- @unmatched_alias_lists = {}
215
- end
216
-
217
- ##
218
- # Contexts are sorted by full_name
219
-
220
- def <=>(other)
221
- full_name <=> other.full_name
222
- end
223
-
224
- ##
225
- # Adds +an_alias+ that is automatically resolved
226
-
227
- def add_alias(an_alias)
228
- meth = find_instance_method_named(an_alias.old_name)
229
-
230
- if meth then
231
- add_alias_impl an_alias, meth
232
- else
233
- add_to @aliases, an_alias
234
- unmatched_alias_list = @unmatched_alias_lists[an_alias.old_name] ||= []
235
- unmatched_alias_list.push an_alias
236
- end
237
-
238
- an_alias
239
- end
240
-
241
- ##
242
- # Adds +an_alias+ pointing to +meth+
243
-
244
- def add_alias_impl(an_alias, meth)
245
- new_meth = RDoc::AnyMethod.new an_alias.text, an_alias.new_name
246
- new_meth.is_alias_for = meth
247
- new_meth.singleton = meth.singleton
248
- new_meth.params = meth.params
249
- new_meth.comment = "Alias for \##{meth.name}"
250
- meth.add_alias new_meth
251
- add_method new_meth
252
- end
253
-
254
- ##
255
- # Adds +attribute+
256
-
257
- def add_attribute(attribute)
258
- add_to @attributes, attribute
259
- end
260
-
261
- ##
262
- # Adds a class named +name+ with +superclass+.
263
- #
264
- # Given <tt>class Container::Item</tt> RDoc assumes +Container+ is a module
265
- # unless it later sees <tt>class Container</tt>. add_class automatically
266
- # upgrades +name+ to a class in this case.
267
-
268
- def add_class(class_type, name, superclass = 'Object')
269
- klass = add_class_or_module @classes, class_type, name, superclass
270
-
271
- # If the parser encounters Container::Item before encountering
272
- # Container, then it assumes that Container is a module. This may not
273
- # be the case, so remove Container from the module list if present and
274
- # transfer any contained classes and modules to the new class.
275
-
276
- RDoc::TopLevel.lock.synchronize do
277
- mod = RDoc::TopLevel.modules_hash.delete klass.full_name
278
-
279
- if mod then
280
- klass.classes_hash.update mod.classes_hash
281
- klass.modules_hash.update mod.modules_hash
282
- klass.method_list.concat mod.method_list
283
-
284
- @modules.delete klass.name
285
- end
286
-
287
- RDoc::TopLevel.classes_hash[klass.full_name] = klass
288
- end
289
-
290
- klass
291
- end
292
-
293
- ##
294
- # Instantiates a +class_type+ named +name+ and adds it the modules or
295
- # classes Hash +collection+.
296
-
297
- def add_class_or_module(collection, class_type, name, superclass = nil)
298
- full_name = if RDoc::TopLevel === self then # HACK
299
- name
300
- else
301
- "#{self.full_name}::#{name}"
302
- end
303
- mod = collection[name]
304
-
305
- if mod then
306
- mod.superclass = superclass unless mod.module?
307
- else
308
- all = nil
309
-
310
- RDoc::TopLevel.lock.synchronize do
311
- all = if class_type == RDoc::NormalModule then
312
- RDoc::TopLevel.modules_hash
313
- else
314
- RDoc::TopLevel.classes_hash
315
- end
316
-
317
- mod = all[full_name]
318
- end
319
-
320
- unless mod then
321
- mod = class_type.new name, superclass
322
- else
323
- # If the class has been encountered already, check that its
324
- # superclass has been set (it may not have been, depending on the
325
- # context in which it was encountered).
326
- if class_type == RDoc::NormalClass then
327
- mod.superclass = superclass unless mod.superclass
328
- end
329
- end
330
-
331
- unless @done_documenting then
332
- RDoc::TopLevel.lock.synchronize do
333
- all[full_name] = mod
334
- end
335
- collection[name] = mod
336
- end
337
-
338
- mod.section = @current_section
339
- mod.parent = self
340
- end
341
-
342
- mod
343
- end
344
-
345
- ##
346
- # Adds +constant+
347
-
348
- def add_constant(constant)
349
- add_to @constants, constant
350
- end
351
-
352
- ##
353
- # Adds included module +include+
354
-
355
- def add_include(include)
356
- add_to @includes, include
357
- end
358
-
359
- ##
360
- # Adds +method+
361
-
362
- def add_method(method)
363
- method.visibility = @visibility
364
- add_to @method_list, method
365
-
366
- unmatched_alias_list = @unmatched_alias_lists[method.name]
367
- if unmatched_alias_list then
368
- unmatched_alias_list.each do |unmatched_alias|
369
- add_alias_impl unmatched_alias, method
370
- @aliases.delete unmatched_alias
371
- end
372
-
373
- @unmatched_alias_lists.delete method.name
374
- end
375
- end
376
-
377
- ##
378
- # Adds a module named +name+. If RDoc already knows +name+ is a class then
379
- # that class is returned instead. See also #add_class
380
-
381
- def add_module(class_type, name)
382
- return @classes[name] if @classes.key? name
383
-
384
- add_class_or_module @modules, class_type, name, nil
385
- end
386
-
387
- ##
388
- # Adds +require+ to this context's top level
389
-
390
- def add_require(require)
391
- if RDoc::TopLevel === self then
392
- add_to @requires, require
393
- else
394
- parent.add_require require
395
- end
396
- end
397
-
398
- ##
399
- # Adds +thing+ to the collection +array+
400
-
401
- def add_to(array, thing)
402
- array << thing if @document_self and not @done_documenting
403
- thing.parent = self
404
- thing.section = @current_section
405
- end
406
-
407
- ##
408
- # Array of classes in this context
409
-
410
- def classes
411
- @classes.values
412
- end
413
-
414
- ##
415
- # All classes and modules in this namespace
416
-
417
- def classes_and_modules
418
- classes + modules
419
- end
420
-
421
- ##
422
- # Hash of classes keyed by class name
423
-
424
- def classes_hash
425
- @classes
426
- end
427
-
428
- ##
429
- # Is part of this thing was defined in +file+?
430
-
431
- def defined_in?(file)
432
- @in_files.include?(file)
433
- end
434
-
435
- ##
436
- # Iterator for attributes
437
-
438
- def each_attribute # :yields: attribute
439
- @attributes.each {|a| yield a}
440
- end
441
-
442
- ##
443
- # Iterator for classes and modules
444
-
445
- def each_classmodule(&block) # :yields: module
446
- classes_and_modules.sort.each(&block)
447
- end
448
-
449
- ##
450
- # Iterator for constants
451
-
452
- def each_constant # :yields: constant
453
- @constants.each {|c| yield c}
454
- end
455
-
456
- ##
457
- # Iterator for included modules
458
-
459
- def each_include # :yields: include
460
- @includes.each do |i| yield i end
461
- end
462
-
463
- ##
464
- # Iterator for methods
465
-
466
- def each_method # :yields: method
467
- @method_list.sort.each {|m| yield m}
468
- end
469
-
470
- ##
471
- # Finds an attribute with +name+ in this context
472
-
473
- def find_attribute_named(name)
474
- @attributes.find { |m| m.name == name }
475
- end
476
-
477
- ##
478
- # Finds a constant with +name+ in this context
479
-
480
- def find_constant_named(name)
481
- @constants.find {|m| m.name == name}
482
- end
483
-
484
- ##
485
- # Find a module at a higher scope
486
-
487
- def find_enclosing_module_named(name)
488
- parent && parent.find_module_named(name)
489
- end
490
-
491
- ##
492
- # Finds a file with +name+ in this context
493
-
494
- def find_file_named(name)
495
- top_level.class.find_file_named(name)
496
- end
497
-
498
- ##
499
- # Finds an instance method with +name+ in this context
500
-
501
- def find_instance_method_named(name)
502
- @method_list.find { |meth| meth.name == name && !meth.singleton }
503
- end
504
-
505
- ##
506
- # Finds a method, constant, attribute, module or files named +symbol+ in
507
- # this context
508
-
509
- def find_local_symbol(symbol)
510
- find_method_named(symbol) or
511
- find_constant_named(symbol) or
512
- find_attribute_named(symbol) or
513
- find_module_named(symbol) or
514
- find_file_named(symbol)
515
- end
516
-
517
- ##
518
- # Finds a instance or module method with +name+ in this context
519
-
520
- def find_method_named(name)
521
- @method_list.find { |meth| meth.name == name }
522
- end
523
-
524
- ##
525
- # Find a module with +name+ using ruby's scoping rules
526
-
527
- def find_module_named(name)
528
- res = @modules[name] || @classes[name]
529
- return res if res
530
- return self if self.name == name
531
- find_enclosing_module_named name
532
- end
533
-
534
- ##
535
- # Look up +symbol+. If +method+ is non-nil, then we assume the symbol
536
- # references a module that contains that method.
537
-
538
- def find_symbol(symbol, method = nil)
539
- result = nil
540
-
541
- case symbol
542
- when /^::(.*)/ then
543
- result = top_level.find_symbol($1)
544
- when /::/ then
545
- modules = symbol.split(/::/)
546
-
547
- unless modules.empty? then
548
- module_name = modules.shift
549
- result = find_module_named(module_name)
550
-
551
- if result then
552
- modules.each do |name|
553
- result = result.find_module_named name
554
- break unless result
555
- end
556
- end
557
- end
558
-
559
- else
560
- # if a method is specified, then we're definitely looking for
561
- # a module, otherwise it could be any symbol
562
- if method then
563
- result = find_module_named symbol
564
- else
565
- result = find_local_symbol symbol
566
- if result.nil? then
567
- if symbol =~ /^[A-Z]/ then
568
- result = parent
569
- while result && result.name != symbol do
570
- result = result.parent
571
- end
572
- end
573
- end
574
- end
575
- end
576
-
577
- if result and method then
578
- fail unless result.respond_to? :find_local_symbol
579
- result = result.find_local_symbol(method)
580
- end
581
-
582
- result
583
- end
584
-
585
- ##
586
- # URL for this with a +prefix+
587
-
588
- def http_url(prefix)
589
- path = full_name
590
- path = path.gsub(/<<\s*(\w*)/, 'from-\1') if path =~ /<</
591
- path = [prefix] + path.split('::')
592
-
593
- File.join(*path.compact) + '.html'
594
- end
595
-
596
- ##
597
- # Breaks method_list into a nested hash by type (class or instance) and
598
- # visibility (public, protected private)
599
-
600
- def methods_by_type
601
- methods = {}
602
-
603
- TYPES.each do |type|
604
- visibilities = {}
605
- VISIBILITIES.each do |vis|
606
- visibilities[vis] = []
607
- end
608
-
609
- methods[type] = visibilities
610
- end
611
-
612
- each_method do |method|
613
- methods[method.type][method.visibility] << method
614
- end
615
-
616
- methods
617
- end
618
-
619
- ##
620
- # Yields Method and Attr entries matching the list of names in +methods+.
621
- # Attributes are only returned when +singleton+ is false.
622
-
623
- def methods_matching(methods, singleton = false)
624
- count = 0
625
-
626
- @method_list.each do |m|
627
- if methods.include? m.name and m.singleton == singleton then
628
- yield m
629
- count += 1
630
- end
631
- end
632
-
633
- return if count == methods.size || singleton
634
-
635
- @attributes.each do |a|
636
- yield a if methods.include? a.name
637
- end
638
- end
639
-
640
- ##
641
- # Array of modules in this context
642
-
643
- def modules
644
- @modules.values
645
- end
646
-
647
- ##
648
- # Hash of modules keyed by module name
649
-
650
- def modules_hash
651
- @modules
652
- end
653
-
654
- ##
655
- # Changes the visibility for new methods to +visibility+
656
-
657
- def ongoing_visibility=(visibility)
658
- @visibility = visibility
659
- end
660
-
661
- ##
662
- # Record which file +top_level+ is in
663
-
664
- def record_location(top_level)
665
- @in_files << top_level unless @in_files.include?(top_level)
666
- end
667
-
668
- ##
669
- # If a class's documentation is turned off after we've started collecting
670
- # methods etc., we need to remove the ones we have
671
-
672
- def remove_methods_etc
673
- initialize_methods_etc
674
- end
675
-
676
- ##
677
- # Given an array +methods+ of method names, set the visibility of each to
678
- # +visibility+
679
-
680
- def set_visibility_for(methods, visibility, singleton = false)
681
- methods_matching methods, singleton do |m|
682
- m.visibility = visibility
683
- end
684
- end
685
-
686
- ##
687
- # Removes classes and modules when we see a :nodoc: all
688
-
689
- def remove_classes_and_modules
690
- initialize_classes_and_modules
691
- end
692
-
693
- ##
694
- # Creates a new section with +title+ and +comment+
695
-
696
- def set_current_section(title, comment)
697
- @current_section = Section.new self, title, comment
698
- @sections << @current_section
699
- end
700
-
701
- ##
702
- # Return the TopLevel that owns us
703
-
704
- def top_level
705
- return @top_level if defined? @top_level
706
- @top_level = self
707
- @top_level = @top_level.parent until RDoc::TopLevel === @top_level
708
- @top_level
709
- end
710
-
711
- end
712
-