gerbil 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +2 -1
- data/bin/gerbil +2 -2
- data/doc/api/classes/RDoc.html +2 -54
- data/doc/api/classes/RDoc/{DummyOptions.html → AnyMethod.html} +64 -13
- data/doc/api/classes/RDoc/AnyMethod.src/M000004.html +18 -0
- data/doc/api/classes/RDoc/AnyMethod.src/M000005.html +23 -0
- data/doc/api/classes/RDoc/{DummyMixin.src → AnyMethod.src}/M000006.html +4 -4
- data/doc/api/classes/RDoc/AnyMethod.src/M000007.html +22 -0
- data/doc/api/classes/RDoc/TopLevel.html +250 -0
- data/doc/api/classes/RDoc/{DummyOptions.src/M000007.html → TopLevel.src/M000008.html} +4 -4
- data/doc/api/classes/RDoc/TopLevel.src/M000009.html +18 -0
- data/doc/api/classes/RDoc/TopLevel.src/M000010.html +18 -0
- data/doc/api/classes/RDoc/TopLevel.src/M000011.html +29 -0
- data/doc/api/classes/RDoc/TopLevel.src/M000012.html +25 -0
- data/doc/api/classes/RDoc/TopLevel.src/M000013.html +18 -0
- data/doc/api/created.rid +1 -1
- data/doc/api/files/lib/gerbil/rdoc_rb.html +1 -1
- data/doc/api/files/lib/gerbil_rb.html +2 -2
- data/doc/api/fr_class_index.html +2 -3
- data/doc/api/fr_method_index.html +10 -4
- data/doc/guide.erb +5 -11
- data/doc/guide.html +118 -124
- data/fmt/html.yaml +23 -9
- data/lib/gerbil.rb +12 -2
- data/lib/gerbil/rdoc.rb +104 -66
- metadata +16 -12
- data/doc/api/classes/RDoc.src/M000004.html +0 -26
- data/doc/api/classes/RDoc.src/M000005.html +0 -59
- data/doc/api/classes/RDoc/DummyMarkup.html +0 -119
- data/doc/api/classes/RDoc/DummyMixin.html +0 -131
data/fmt/html.yaml
CHANGED
@@ -104,9 +104,18 @@ nodes:
|
|
104
104
|
index: false
|
105
105
|
number: false
|
106
106
|
silent: true
|
107
|
-
output: <%= @node.content %>
|
107
|
+
output: <%= @node.content.to_html %>
|
108
108
|
|
109
|
-
|
109
|
+
header_outside_above: *header
|
110
|
+
header_inside_above: *header
|
111
|
+
header_inside_below: *header
|
112
|
+
header_outside_below: *header
|
113
|
+
|
114
|
+
footer: *header
|
115
|
+
footer_outside_above: *header
|
116
|
+
footer_inside_above: *header
|
117
|
+
footer_inside_below: *header
|
118
|
+
footer_outside_below: *header
|
110
119
|
|
111
120
|
abstract:
|
112
121
|
toc: false
|
@@ -325,11 +334,13 @@ output: |
|
|
325
334
|
<% end %>
|
326
335
|
</head>
|
327
336
|
<body>
|
337
|
+
<%= node = @types['header_outside_above'].first and node.output %>
|
328
338
|
<div id="header">
|
339
|
+
<%= node = @types['header_inside_above'].first and node.output %>
|
329
340
|
<% if header = @types['header'].first %>
|
330
341
|
<%= header.output %>
|
331
342
|
<% else %>
|
332
|
-
<%= $logo %>
|
343
|
+
<%= $logo if defined? $logo %>
|
333
344
|
<h1 class="title"><%= $title.to_s.to_html %></h1>
|
334
345
|
<h2 class="authors"><%=
|
335
346
|
$authors.map do |(name, url)|
|
@@ -342,7 +353,9 @@ output: |
|
|
342
353
|
%></h2>
|
343
354
|
<h3 class="date"><%= $date %></h3>
|
344
355
|
<% end %>
|
356
|
+
<%= node = @types['header_inside_below'].first and node.output %>
|
345
357
|
</div>
|
358
|
+
<%= node = @types['header_outside_below'].first and node.output %>
|
346
359
|
|
347
360
|
<% if abstract = @types['abstract'].first %>
|
348
361
|
<%= abstract.output %>
|
@@ -412,17 +425,21 @@ output: |
|
|
412
425
|
<hr style="display: none"/>
|
413
426
|
<br style="display: none"/>
|
414
427
|
|
428
|
+
<%= node = @types['footer_outside_above'].first and node.output %>
|
415
429
|
<div id="footer">
|
430
|
+
<%= node = @types['footer_inside_above'].first and node.output %>
|
416
431
|
<% if footer = @types['footer'].first %>
|
417
432
|
<%= footer.content.to_s.to_html %>
|
418
433
|
<% else %>
|
419
434
|
Generated on <%= Time.now %> by <a href="<%= Gerbil[:website] %>"><%= Gerbil[:name] %></a> <%= Gerbil[:version] %>.
|
420
435
|
<% end %>
|
421
436
|
|
422
|
-
<% if $icons_used and not $icons_used.empty? %>
|
437
|
+
<% if defined? $icons_used and $icons_used and not $icons_used.empty? %>
|
423
438
|
<p>The admonition icons (<%= $icons_used.uniq.map {|icon| icon.to_html}.join(' ') %>) used in this document are Copyright © 2005 <a href="http://tango.freedesktop.org">Tango Desktop Project</a>. They are part of the <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a> set, which is distributed under the <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License Agreement</a>.</p>
|
424
439
|
<% end %>
|
440
|
+
<%= node = @types['footer_inside_below'].first and node.output %>
|
425
441
|
</div>
|
442
|
+
<%= node = @types['footer_outside_below'].first and node.output %>
|
426
443
|
</body>
|
427
444
|
</html>
|
428
445
|
|
@@ -514,6 +531,8 @@ styles:
|
|
514
531
|
table
|
515
532
|
{
|
516
533
|
border : none;
|
534
|
+
margin : auto; /* center horizontally */
|
535
|
+
margin-top : 1em;
|
517
536
|
}
|
518
537
|
|
519
538
|
th,
|
@@ -530,11 +549,6 @@ styles:
|
|
530
549
|
background-color : #F5F5F5;
|
531
550
|
}
|
532
551
|
|
533
|
-
table
|
534
|
-
{
|
535
|
-
margin : auto;
|
536
|
-
}
|
537
|
-
|
538
552
|
/* document structure */
|
539
553
|
|
540
554
|
#header
|
data/lib/gerbil.rb
CHANGED
@@ -2,10 +2,20 @@
|
|
2
2
|
|
3
3
|
Gerbil = {
|
4
4
|
:name => 'Gerbil',
|
5
|
-
:version => '
|
6
|
-
:release => '2008-
|
5
|
+
:version => '2.0.0',
|
6
|
+
:release => '2008-02-03',
|
7
7
|
:website => 'http://gerbil.rubyforge.org',
|
8
8
|
:home => File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
9
9
|
}
|
10
10
|
Gerbil[:format_home] = File.join(Gerbil[:home], 'fmt')
|
11
11
|
Gerbil[:format_files] = Dir[File.join(Gerbil[:format_home], '*.yaml')]
|
12
|
+
|
13
|
+
class << Gerbil
|
14
|
+
# Returns the name and version.
|
15
|
+
def to_s
|
16
|
+
self[:name] + ' ' + self[:version]
|
17
|
+
end
|
18
|
+
|
19
|
+
# throw an exception instead of returning nil
|
20
|
+
alias [] fetch
|
21
|
+
end
|
data/lib/gerbil/rdoc.rb
CHANGED
@@ -6,13 +6,114 @@
|
|
6
6
|
require 'rdoc/rdoc'
|
7
7
|
|
8
8
|
module RDoc
|
9
|
-
|
9
|
+
class TopLevel
|
10
|
+
# Returns an array of all classes recorded thus far.
|
11
|
+
def self.all_classes
|
12
|
+
@@all_classes.values
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns an array of all modules recorded thus far.
|
16
|
+
def self.all_modules
|
17
|
+
@@all_modules.values
|
18
|
+
end
|
19
|
+
|
20
|
+
# Returns an array of RDoc::AnyMethod objects
|
21
|
+
# representing all methods recorded thus far.
|
22
|
+
def self.all_methods
|
23
|
+
all_classes_and_modules.map {|c| c.method_list }.flatten
|
24
|
+
end
|
25
|
+
|
26
|
+
# Update the return value of the all_classes_and_modules() method
|
27
|
+
# to *really* include every class and every module seen thus far.
|
28
|
+
def self.refresh_all_classes_and_modules
|
29
|
+
visit = lambda do |node|
|
30
|
+
if node.is_a? NormalClass or node.is_a? SingleClass
|
31
|
+
@@all_classes[node.full_name] = node
|
32
|
+
|
33
|
+
elsif node.is_a? NormalModule
|
34
|
+
@@all_modules[node.full_name] = node
|
35
|
+
end
|
36
|
+
|
37
|
+
(node.classes + node.modules).each {|n| visit[n] }
|
38
|
+
end
|
39
|
+
|
40
|
+
all_classes_and_modules.each {|n| visit[n] }
|
41
|
+
end
|
42
|
+
|
43
|
+
# Returns a RDoc::TopLevel object containing information
|
44
|
+
# parsed from the given code string. This information is
|
45
|
+
# also added to the global TopLevel class state, so you can
|
46
|
+
# access it via the class methods of the TopLevel class.
|
47
|
+
#
|
48
|
+
# If the file name (which signifies the origin
|
49
|
+
# of the given code) is given, it MUST have a
|
50
|
+
# ".c" or ".rb" file extension. Otherwise,
|
51
|
+
# RDoc will ignore the given code string! :-(
|
52
|
+
#
|
53
|
+
def self.parse aCodeString, aFileName = __FILE__
|
54
|
+
top = ParserFactory.parser_for(
|
55
|
+
TopLevel.new(aFileName), aFileName,
|
56
|
+
aCodeString, DummyOptions.new, Stats.new
|
57
|
+
).scan
|
58
|
+
|
59
|
+
refresh_all_classes_and_modules
|
60
|
+
|
61
|
+
top
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns a RDoc::TopLevel object containing information
|
65
|
+
# parsed from the code in the given file. This information
|
66
|
+
# is also added to the global TopLevel class state, so you
|
67
|
+
# can access it via the class methods of the TopLevel class.
|
68
|
+
#
|
69
|
+
# The given file name MUST have a ".c" or ".rb" file
|
70
|
+
# extension. Otherwise, RDoc will ignore the file! :-(
|
71
|
+
#
|
72
|
+
def self.parse_file aFileName
|
73
|
+
parse File.read(aFileName), aFileName
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
class AnyMethod
|
78
|
+
# Returns the fully qualified name of this method.
|
79
|
+
def full_name
|
80
|
+
[parent.full_name, name].join(singleton ? '::' : '#')
|
81
|
+
end
|
82
|
+
|
83
|
+
# Returns a complete method declaration with block parameters and all.
|
84
|
+
def decl
|
85
|
+
a = params.dup
|
86
|
+
if b = block_params
|
87
|
+
a.sub! %r/\s*\#.*(?=.$)/, '' # remove "# :yields: ..." string
|
88
|
+
a << " {|#{b}| ... }"
|
89
|
+
end
|
90
|
+
full_name << a
|
91
|
+
end
|
92
|
+
|
93
|
+
# Returns a HTML version of this method's comment.
|
94
|
+
def comment_html
|
95
|
+
DummyMarkup.new.markup comment
|
96
|
+
end
|
97
|
+
|
98
|
+
# Returns the RDoc::TopLevel object which contains this method.
|
99
|
+
def top_level
|
100
|
+
n = parent
|
101
|
+
while n && n.parent
|
102
|
+
n = n.parent
|
103
|
+
end
|
104
|
+
n
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
private
|
109
|
+
|
110
|
+
module DummyMixin #:nodoc:
|
10
111
|
def method_missing *args
|
11
112
|
# ignore all messages
|
12
113
|
end
|
13
114
|
end
|
14
115
|
|
15
|
-
class DummyOptions
|
116
|
+
class DummyOptions #:nodoc:
|
16
117
|
include DummyMixin
|
17
118
|
|
18
119
|
def quiet # supress '...c..m...' output on STDERR
|
@@ -20,72 +121,9 @@ module RDoc
|
|
20
121
|
end
|
21
122
|
end
|
22
123
|
|
23
|
-
class DummyMarkup
|
124
|
+
class DummyMarkup #:nodoc:
|
24
125
|
require 'rdoc/generators/html_generator'
|
25
126
|
include Generators::MarkUp
|
26
127
|
include DummyMixin
|
27
128
|
end
|
28
|
-
|
29
|
-
# Returns an array of RDoc parse trees for the given code.
|
30
|
-
# If the file name (which signifies the origin of the given
|
31
|
-
# code) is given, it MUST have a ".rb" file extension.
|
32
|
-
# Otherwise, RDoc will give you an empty parse tree! :-(
|
33
|
-
def self.gen_parse_trees aCode, aFileName = __FILE__
|
34
|
-
root = TopLevel.new(aFileName)
|
35
|
-
parser = ParserFactory.parser_for(root, aFileName, aCode, DummyOptions.new, Stats.new)
|
36
|
-
info = parser.scan
|
37
|
-
|
38
|
-
info.requires.map do |r|
|
39
|
-
f = r.name
|
40
|
-
f << '.rb' unless File.exist? f
|
41
|
-
gen_parse_trees f if File.exist? f
|
42
|
-
end.flatten.compact << info
|
43
|
-
end
|
44
|
-
|
45
|
-
# Returns an array of hashes describing all methods present in the
|
46
|
-
# given parse trees (which are produced by RDoc::gen_parse_trees).
|
47
|
-
def self.gen_method_infos *aParseTrees
|
48
|
-
meths = aParseTrees.map do |i|
|
49
|
-
[i, i.classes, i.modules].flatten.map {|j| j.method_list }
|
50
|
-
end.flatten.uniq
|
51
|
-
|
52
|
-
meths.map do |m|
|
53
|
-
# determine full path to method (Module::Class::...::method)
|
54
|
-
hier = []
|
55
|
-
root = m.parent
|
56
|
-
while root && root.parent
|
57
|
-
hier.unshift root
|
58
|
-
root = root.parent
|
59
|
-
end
|
60
|
-
|
61
|
-
if hier.empty?
|
62
|
-
path = m.name
|
63
|
-
else
|
64
|
-
path = hier.map {|n| n.name}.join('::')
|
65
|
-
path = [path, m.name].join(m.singleton ? '::' : '#')
|
66
|
-
end
|
67
|
-
|
68
|
-
# determine argument string for method
|
69
|
-
args = m.params
|
70
|
-
if m.block_params
|
71
|
-
args.sub! %r/\#.*(?=.$)/, ''
|
72
|
-
args << " { |#{m.block_params}| ... }"
|
73
|
-
end
|
74
|
-
|
75
|
-
{
|
76
|
-
:file => root.file_absolute_name,
|
77
|
-
:name => path,
|
78
|
-
:args => args,
|
79
|
-
:decl => path + args,
|
80
|
-
:docs => m.comment,
|
81
|
-
:docs_html => DummyMarkup.new.markup(m.comment),
|
82
|
-
|
83
|
-
# nodes in the parse tree
|
84
|
-
:node => m,
|
85
|
-
:root => root,
|
86
|
-
# for top level methods, info.parent == root
|
87
|
-
# for class methods, info.singleton == true
|
88
|
-
}
|
89
|
-
end
|
90
|
-
end
|
91
129
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gerbil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors: []
|
7
7
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-02-03 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -77,17 +77,21 @@ files:
|
|
77
77
|
- doc/api/classes/String.src/M000003.html
|
78
78
|
- doc/api/classes/String.src/M000002.html
|
79
79
|
- doc/api/classes/String.html
|
80
|
-
- doc/api/classes/RDoc.src
|
81
|
-
- doc/api/classes/RDoc.src/M000005.html
|
82
|
-
- doc/api/classes/RDoc.src/M000004.html
|
83
80
|
- doc/api/classes/RDoc
|
84
|
-
- doc/api/classes/RDoc/
|
85
|
-
- doc/api/classes/RDoc/
|
86
|
-
- doc/api/classes/RDoc/
|
87
|
-
- doc/api/classes/RDoc/
|
88
|
-
- doc/api/classes/RDoc/
|
89
|
-
- doc/api/classes/RDoc/
|
90
|
-
- doc/api/classes/RDoc/
|
81
|
+
- doc/api/classes/RDoc/TopLevel.src
|
82
|
+
- doc/api/classes/RDoc/TopLevel.src/M000013.html
|
83
|
+
- doc/api/classes/RDoc/TopLevel.src/M000010.html
|
84
|
+
- doc/api/classes/RDoc/TopLevel.src/M000011.html
|
85
|
+
- doc/api/classes/RDoc/TopLevel.src/M000008.html
|
86
|
+
- doc/api/classes/RDoc/TopLevel.src/M000012.html
|
87
|
+
- doc/api/classes/RDoc/TopLevel.src/M000009.html
|
88
|
+
- doc/api/classes/RDoc/TopLevel.html
|
89
|
+
- doc/api/classes/RDoc/AnyMethod.src
|
90
|
+
- doc/api/classes/RDoc/AnyMethod.src/M000005.html
|
91
|
+
- doc/api/classes/RDoc/AnyMethod.src/M000004.html
|
92
|
+
- doc/api/classes/RDoc/AnyMethod.src/M000006.html
|
93
|
+
- doc/api/classes/RDoc/AnyMethod.src/M000007.html
|
94
|
+
- doc/api/classes/RDoc/AnyMethod.html
|
91
95
|
- doc/api/fr_method_index.html
|
92
96
|
- doc/api/rdoc-style.css
|
93
97
|
- doc/api/files
|
@@ -1,26 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html>
|
7
|
-
<head>
|
8
|
-
<title>gen_parse_trees (RDoc)</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
-
</head>
|
12
|
-
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gerbil/rdoc.rb, line 33</span>
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gen_parse_trees</span> <span class="ruby-identifier">aCode</span>, <span class="ruby-identifier">aFileName</span> = <span class="ruby-keyword kw">__FILE__</span>
|
15
|
-
<span class="ruby-identifier">root</span> = <span class="ruby-constant">TopLevel</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">aFileName</span>)
|
16
|
-
<span class="ruby-identifier">parser</span> = <span class="ruby-constant">ParserFactory</span>.<span class="ruby-identifier">parser_for</span>(<span class="ruby-identifier">root</span>, <span class="ruby-identifier">aFileName</span>, <span class="ruby-identifier">aCode</span>, <span class="ruby-constant">DummyOptions</span>.<span class="ruby-identifier">new</span>, <span class="ruby-constant">Stats</span>.<span class="ruby-identifier">new</span>)
|
17
|
-
<span class="ruby-identifier">info</span> = <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">scan</span>
|
18
|
-
|
19
|
-
<span class="ruby-identifier">info</span>.<span class="ruby-identifier">requires</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
20
|
-
<span class="ruby-identifier">f</span> = <span class="ruby-identifier">r</span>.<span class="ruby-identifier">name</span>
|
21
|
-
<span class="ruby-identifier">f</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'.rb'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">f</span>
|
22
|
-
<span class="ruby-identifier">gen_parse_trees</span> <span class="ruby-identifier">f</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">f</span>
|
23
|
-
<span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">compact</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">info</span>
|
24
|
-
<span class="ruby-keyword kw">end</span></pre>
|
25
|
-
</body>
|
26
|
-
</html>
|
@@ -1,59 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html>
|
7
|
-
<head>
|
8
|
-
<title>gen_method_infos (RDoc)</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
-
</head>
|
12
|
-
<body class="standalone-code">
|
13
|
-
<pre><span class="ruby-comment cmt"># File lib/gerbil/rdoc.rb, line 47</span>
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gen_method_infos</span> <span class="ruby-operator">*</span><span class="ruby-identifier">aParseTrees</span>
|
15
|
-
<span class="ruby-identifier">meths</span> = <span class="ruby-identifier">aParseTrees</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
16
|
-
[<span class="ruby-identifier">i</span>, <span class="ruby-identifier">i</span>.<span class="ruby-identifier">classes</span>, <span class="ruby-identifier">i</span>.<span class="ruby-identifier">modules</span>].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span> <span class="ruby-identifier">j</span>.<span class="ruby-identifier">method_list</span> }
|
17
|
-
<span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">uniq</span>
|
18
|
-
|
19
|
-
<span class="ruby-identifier">meths</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span>
|
20
|
-
<span class="ruby-comment cmt"># determine full path to method (Module::Class::...::method)</span>
|
21
|
-
<span class="ruby-identifier">hier</span> = []
|
22
|
-
<span class="ruby-identifier">root</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">parent</span>
|
23
|
-
<span class="ruby-keyword kw">while</span> <span class="ruby-identifier">root</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">root</span>.<span class="ruby-identifier">parent</span>
|
24
|
-
<span class="ruby-identifier">hier</span>.<span class="ruby-identifier">unshift</span> <span class="ruby-identifier">root</span>
|
25
|
-
<span class="ruby-identifier">root</span> = <span class="ruby-identifier">root</span>.<span class="ruby-identifier">parent</span>
|
26
|
-
<span class="ruby-keyword kw">end</span>
|
27
|
-
|
28
|
-
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hier</span>.<span class="ruby-identifier">empty?</span>
|
29
|
-
<span class="ruby-identifier">path</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">name</span>
|
30
|
-
<span class="ruby-keyword kw">else</span>
|
31
|
-
<span class="ruby-identifier">path</span> = <span class="ruby-identifier">hier</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">name</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'::'</span>)
|
32
|
-
<span class="ruby-identifier">path</span> = [<span class="ruby-identifier">path</span>, <span class="ruby-identifier">m</span>.<span class="ruby-identifier">name</span>].<span class="ruby-identifier">join</span>(<span class="ruby-identifier">m</span>.<span class="ruby-identifier">singleton</span> <span class="ruby-value">? </span><span class="ruby-value str">'::'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'#'</span>)
|
33
|
-
<span class="ruby-keyword kw">end</span>
|
34
|
-
|
35
|
-
<span class="ruby-comment cmt"># determine argument string for method</span>
|
36
|
-
<span class="ruby-identifier">args</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">params</span>
|
37
|
-
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">block_params</span>
|
38
|
-
<span class="ruby-identifier">args</span>.<span class="ruby-identifier">sub!</span> <span class="ruby-regexp re">%r/\#.*(?=.$)/</span>, <span class="ruby-value str">''</span>
|
39
|
-
<span class="ruby-identifier">args</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" { |#{m.block_params}| ... }"</span>
|
40
|
-
<span class="ruby-keyword kw">end</span>
|
41
|
-
|
42
|
-
{
|
43
|
-
<span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">root</span>.<span class="ruby-identifier">file_absolute_name</span>,
|
44
|
-
<span class="ruby-identifier">:name</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">path</span>,
|
45
|
-
<span class="ruby-identifier">:args</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>,
|
46
|
-
<span class="ruby-identifier">:decl</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">args</span>,
|
47
|
-
<span class="ruby-identifier">:docs</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">comment</span>,
|
48
|
-
<span class="ruby-identifier">:docs_html</span> =<span class="ruby-operator">></span> <span class="ruby-constant">DummyMarkup</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">markup</span>(<span class="ruby-identifier">m</span>.<span class="ruby-identifier">comment</span>),
|
49
|
-
|
50
|
-
<span class="ruby-comment cmt"># nodes in the parse tree</span>
|
51
|
-
<span class="ruby-identifier">:node</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">m</span>,
|
52
|
-
<span class="ruby-identifier">:root</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">root</span>,
|
53
|
-
<span class="ruby-comment cmt"># for top level methods, info.parent == root</span>
|
54
|
-
<span class="ruby-comment cmt"># for class methods, info.singleton == true</span>
|
55
|
-
}
|
56
|
-
<span class="ruby-keyword kw">end</span>
|
57
|
-
<span class="ruby-keyword kw">end</span></pre>
|
58
|
-
</body>
|
59
|
-
</html>
|
@@ -1,119 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
-
<head>
|
8
|
-
<title>Class: RDoc::DummyMarkup</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
-
<script type="text/javascript">
|
13
|
-
// <![CDATA[
|
14
|
-
|
15
|
-
function popupCode( url ) {
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
-
}
|
18
|
-
|
19
|
-
function toggleCode( id ) {
|
20
|
-
if ( document.getElementById )
|
21
|
-
elem = document.getElementById( id );
|
22
|
-
else if ( document.all )
|
23
|
-
elem = eval( "document.all." + id );
|
24
|
-
else
|
25
|
-
return false;
|
26
|
-
|
27
|
-
elemStyle = elem.style;
|
28
|
-
|
29
|
-
if ( elemStyle.display != "block" ) {
|
30
|
-
elemStyle.display = "block"
|
31
|
-
} else {
|
32
|
-
elemStyle.display = "none"
|
33
|
-
}
|
34
|
-
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
// Make codeblocks hidden by default
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
-
|
41
|
-
// ]]>
|
42
|
-
</script>
|
43
|
-
|
44
|
-
</head>
|
45
|
-
<body>
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<div id="classHeader">
|
50
|
-
<table class="header-table">
|
51
|
-
<tr class="top-aligned-row">
|
52
|
-
<td><strong>Class</strong></td>
|
53
|
-
<td class="class-name-in-header">RDoc::DummyMarkup</td>
|
54
|
-
</tr>
|
55
|
-
<tr class="top-aligned-row">
|
56
|
-
<td><strong>In:</strong></td>
|
57
|
-
<td>
|
58
|
-
<a href="../../files/lib/gerbil/rdoc_rb.html">
|
59
|
-
lib/gerbil/rdoc.rb
|
60
|
-
</a>
|
61
|
-
<br />
|
62
|
-
</td>
|
63
|
-
</tr>
|
64
|
-
|
65
|
-
<tr class="top-aligned-row">
|
66
|
-
<td><strong>Parent:</strong></td>
|
67
|
-
<td>
|
68
|
-
Object
|
69
|
-
</td>
|
70
|
-
</tr>
|
71
|
-
</table>
|
72
|
-
</div>
|
73
|
-
<!-- banner header -->
|
74
|
-
|
75
|
-
<div id="bodyContent">
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
<div id="contextContent">
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
</div>
|
84
|
-
|
85
|
-
|
86
|
-
</div>
|
87
|
-
|
88
|
-
|
89
|
-
<!-- if includes -->
|
90
|
-
<div id="includes">
|
91
|
-
<h3 class="section-bar">Included Modules</h3>
|
92
|
-
|
93
|
-
<div id="includes-list">
|
94
|
-
<span class="include-name">Generators::MarkUp</span>
|
95
|
-
<span class="include-name"><a href="DummyMixin.html">DummyMixin</a></span>
|
96
|
-
</div>
|
97
|
-
</div>
|
98
|
-
|
99
|
-
<div id="section">
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
<!-- if method_list -->
|
109
|
-
|
110
|
-
|
111
|
-
</div>
|
112
|
-
|
113
|
-
|
114
|
-
<div id="validator-badges">
|
115
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
116
|
-
</div>
|
117
|
-
|
118
|
-
</body>
|
119
|
-
</html>
|