sqlpostgres 1.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +8 -0
- data/Gemfile.lock +22 -0
- data/LICENSE.md +23 -0
- data/README.rdoc +59 -0
- data/Rakefile +32 -0
- data/VERSION +1 -0
- data/doc/BUGS +2 -0
- data/doc/examples/README +6 -0
- data/doc/examples/connection.rb +16 -0
- data/doc/examples/connection_auto.rb +22 -0
- data/doc/examples/connection_ctor.rb +18 -0
- data/doc/examples/connection_default.rb +15 -0
- data/doc/examples/connection_exec.rb +18 -0
- data/doc/examples/connection_manual.rb +12 -0
- data/doc/examples/connection_wrapped_new.rb +13 -0
- data/doc/examples/connection_wrapped_open.rb +13 -0
- data/doc/examples/cursor.rb +38 -0
- data/doc/examples/include_module.rb +9 -0
- data/doc/examples/include_module2.rb +12 -0
- data/doc/examples/insert.rb +30 -0
- data/doc/examples/insert2.rb +36 -0
- data/doc/examples/insert_bytea.rb +16 -0
- data/doc/examples/insert_bytea_array.rb +17 -0
- data/doc/examples/insert_default_values.rb +16 -0
- data/doc/examples/insert_insert.rb +16 -0
- data/doc/examples/insert_insert_default.rb +16 -0
- data/doc/examples/insert_insert_select.rb +20 -0
- data/doc/examples/insert_select.rb +20 -0
- data/doc/examples/interval.rb +17 -0
- data/doc/examples/savepoint.rb +38 -0
- data/doc/examples/select.rb +33 -0
- data/doc/examples/select2.rb +36 -0
- data/doc/examples/select_cross_join.rb +18 -0
- data/doc/examples/select_distinct.rb +18 -0
- data/doc/examples/select_distinct_on +19 -0
- data/doc/examples/select_for_update.rb +18 -0
- data/doc/examples/select_from.rb +17 -0
- data/doc/examples/select_from_subselect.rb +20 -0
- data/doc/examples/select_group_by.rb +19 -0
- data/doc/examples/select_having.rb +20 -0
- data/doc/examples/select_join_on.rb +18 -0
- data/doc/examples/select_join_using.rb +18 -0
- data/doc/examples/select_limit.rb +19 -0
- data/doc/examples/select_natural_join.rb +18 -0
- data/doc/examples/select_offset.rb +19 -0
- data/doc/examples/select_order_by.rb +20 -0
- data/doc/examples/select_select.rb +30 -0
- data/doc/examples/select_select_alias.rb +30 -0
- data/doc/examples/select_select_expression.rb +31 -0
- data/doc/examples/select_select_literal.rb +24 -0
- data/doc/examples/select_union.rb +21 -0
- data/doc/examples/select_where_array.rb +18 -0
- data/doc/examples/select_where_in.rb +18 -0
- data/doc/examples/select_where_string.rb +18 -0
- data/doc/examples/simple.rb +34 -0
- data/doc/examples/transaction.rb +30 -0
- data/doc/examples/transaction_abort.rb +30 -0
- data/doc/examples/transaction_commit.rb +34 -0
- data/doc/examples/translate_substitute_values.rb +17 -0
- data/doc/examples/update.rb +32 -0
- data/doc/examples/update2.rb +44 -0
- data/doc/examples/update_only.rb +17 -0
- data/doc/examples/update_set.rb +17 -0
- data/doc/examples/update_set_array.rb +16 -0
- data/doc/examples/update_set_bytea.rb +16 -0
- data/doc/examples/update_set_expression.rb +16 -0
- data/doc/examples/update_set_subselect.rb +20 -0
- data/doc/examples/update_where.rb +17 -0
- data/doc/examples/use_prefix.rb +8 -0
- data/doc/examples/use_prefix2.rb +11 -0
- data/doc/index.html +31 -0
- data/doc/insertexamples.rb +9 -0
- data/doc/makemanual +4 -0
- data/doc/makerdoc +5 -0
- data/doc/manual.dbk +622 -0
- data/lib/sqlpostgres/Connection.rb +198 -0
- data/lib/sqlpostgres/Cursor.rb +157 -0
- data/lib/sqlpostgres/Delete.rb +67 -0
- data/lib/sqlpostgres/Exceptions.rb +15 -0
- data/lib/sqlpostgres/Insert.rb +279 -0
- data/lib/sqlpostgres/NullConnection.rb +22 -0
- data/lib/sqlpostgres/PgBit.rb +73 -0
- data/lib/sqlpostgres/PgBox.rb +37 -0
- data/lib/sqlpostgres/PgCidr.rb +21 -0
- data/lib/sqlpostgres/PgCircle.rb +75 -0
- data/lib/sqlpostgres/PgInet.rb +21 -0
- data/lib/sqlpostgres/PgInterval.rb +208 -0
- data/lib/sqlpostgres/PgLineSegment.rb +37 -0
- data/lib/sqlpostgres/PgMacAddr.rb +21 -0
- data/lib/sqlpostgres/PgPath.rb +64 -0
- data/lib/sqlpostgres/PgPoint.rb +65 -0
- data/lib/sqlpostgres/PgPolygon.rb +56 -0
- data/lib/sqlpostgres/PgTime.rb +77 -0
- data/lib/sqlpostgres/PgTimeWithTimeZone.rb +98 -0
- data/lib/sqlpostgres/PgTimestamp.rb +93 -0
- data/lib/sqlpostgres/PgTwoPoints.rb +54 -0
- data/lib/sqlpostgres/PgType.rb +34 -0
- data/lib/sqlpostgres/PgWrapper.rb +41 -0
- data/lib/sqlpostgres/Savepoint.rb +98 -0
- data/lib/sqlpostgres/Select.rb +855 -0
- data/lib/sqlpostgres/Transaction.rb +120 -0
- data/lib/sqlpostgres/Translate.rb +436 -0
- data/lib/sqlpostgres/Update.rb +188 -0
- data/lib/sqlpostgres.rb +67 -0
- data/test/Assert.rb +72 -0
- data/test/Connection.test.rb +246 -0
- data/test/Cursor.test.rb +190 -0
- data/test/Delete.test.rb +68 -0
- data/test/Insert.test.rb +123 -0
- data/test/MockPGconn.rb +62 -0
- data/test/NullConnection.test.rb +32 -0
- data/test/PgBit.test.rb +98 -0
- data/test/PgBox.test.rb +108 -0
- data/test/PgCidr.test.rb +61 -0
- data/test/PgCircle.test.rb +107 -0
- data/test/PgInet.test.rb +61 -0
- data/test/PgInterval.test.rb +180 -0
- data/test/PgLineSegment.test.rb +108 -0
- data/test/PgMacAddr.test.rb +61 -0
- data/test/PgPath.test.rb +106 -0
- data/test/PgPoint.test.rb +100 -0
- data/test/PgPolygon.test.rb +95 -0
- data/test/PgTime.test.rb +120 -0
- data/test/PgTimeWithTimeZone.test.rb +117 -0
- data/test/PgTimestamp.test.rb +134 -0
- data/test/RandomThings.rb +25 -0
- data/test/Savepoint.test.rb +286 -0
- data/test/Select.test.rb +930 -0
- data/test/Test.rb +62 -0
- data/test/TestConfig.rb +21 -0
- data/test/TestSetup.rb +13 -0
- data/test/TestUtil.rb +92 -0
- data/test/Transaction.test.rb +275 -0
- data/test/Translate.test.rb +354 -0
- data/test/Update.test.rb +227 -0
- data/test/roundtrip.test.rb +565 -0
- data/test/test +34 -0
- data/tools/exampleinserter/ExampleInserter.rb +177 -0
- data/tools/rdoc/ChangeLog +796 -0
- data/tools/rdoc/EXAMPLE.rb +48 -0
- data/tools/rdoc/MANIFEST +58 -0
- data/tools/rdoc/Makefile +27 -0
- data/tools/rdoc/NEW_FEATURES +226 -0
- data/tools/rdoc/README +390 -0
- data/tools/rdoc/ToDo +6 -0
- data/tools/rdoc/contrib/Index +6 -0
- data/tools/rdoc/contrib/xslfo/ChangeLog +181 -0
- data/tools/rdoc/contrib/xslfo/README +106 -0
- data/tools/rdoc/contrib/xslfo/TODO +10 -0
- data/tools/rdoc/contrib/xslfo/convert.xsl +151 -0
- data/tools/rdoc/contrib/xslfo/demo/README +21 -0
- data/tools/rdoc/contrib/xslfo/demo/rdocfo +99 -0
- data/tools/rdoc/contrib/xslfo/fcm.xsl +54 -0
- data/tools/rdoc/contrib/xslfo/files.xsl +62 -0
- data/tools/rdoc/contrib/xslfo/labeled-lists.xsl +66 -0
- data/tools/rdoc/contrib/xslfo/lists.xsl +44 -0
- data/tools/rdoc/contrib/xslfo/modules.xsl +152 -0
- data/tools/rdoc/contrib/xslfo/rdoc.xsl +75 -0
- data/tools/rdoc/contrib/xslfo/source.xsl +66 -0
- data/tools/rdoc/contrib/xslfo/styles.xsl +69 -0
- data/tools/rdoc/contrib/xslfo/tables.xsl +67 -0
- data/tools/rdoc/contrib/xslfo/utils.xsl +21 -0
- data/tools/rdoc/debian/changelog +33 -0
- data/tools/rdoc/debian/compat +1 -0
- data/tools/rdoc/debian/control +20 -0
- data/tools/rdoc/debian/copyright +10 -0
- data/tools/rdoc/debian/dirs +2 -0
- data/tools/rdoc/debian/docs +2 -0
- data/tools/rdoc/debian/rdoc.1 +252 -0
- data/tools/rdoc/debian/rdoc.manpages +1 -0
- data/tools/rdoc/debian/rdoc.pod +149 -0
- data/tools/rdoc/debian/rules +9 -0
- data/tools/rdoc/dot/dot.rb +255 -0
- data/tools/rdoc/etc/rdoc.dtd +203 -0
- data/tools/rdoc/install.rb +137 -0
- data/tools/rdoc/markup/install.rb +43 -0
- data/tools/rdoc/markup/sample/sample.rb +42 -0
- data/tools/rdoc/markup/simple_markup/fragments.rb +323 -0
- data/tools/rdoc/markup/simple_markup/inline.rb +348 -0
- data/tools/rdoc/markup/simple_markup/lines.rb +147 -0
- data/tools/rdoc/markup/simple_markup/preprocess.rb +68 -0
- data/tools/rdoc/markup/simple_markup/to_html.rb +281 -0
- data/tools/rdoc/markup/simple_markup.rb +474 -0
- data/tools/rdoc/markup/test/AllTests.rb +2 -0
- data/tools/rdoc/markup/test/TestInline.rb +151 -0
- data/tools/rdoc/markup/test/TestParse.rb +411 -0
- data/tools/rdoc/rdoc/code_objects.rb +536 -0
- data/tools/rdoc/rdoc/diagram.rb +331 -0
- data/tools/rdoc/rdoc/generators/chm_generator.rb +112 -0
- data/tools/rdoc/rdoc/generators/html_generator.rb +1268 -0
- data/tools/rdoc/rdoc/generators/template/chm/chm.rb +86 -0
- data/tools/rdoc/rdoc/generators/template/html/html.rb +705 -0
- data/tools/rdoc/rdoc/generators/template/html/kilmer.rb +377 -0
- data/tools/rdoc/rdoc/generators/template/xml/rdf.rb +110 -0
- data/tools/rdoc/rdoc/generators/template/xml/xml.rb +110 -0
- data/tools/rdoc/rdoc/generators/xml_generator.rb +130 -0
- data/tools/rdoc/rdoc/options.rb +451 -0
- data/tools/rdoc/rdoc/parsers/parse_c.rb +287 -0
- data/tools/rdoc/rdoc/parsers/parse_f95.rb +118 -0
- data/tools/rdoc/rdoc/parsers/parse_rb.rb +2311 -0
- data/tools/rdoc/rdoc/parsers/parse_simple.rb +37 -0
- data/tools/rdoc/rdoc/parsers/parserfactory.rb +75 -0
- data/tools/rdoc/rdoc/rdoc.rb +219 -0
- data/tools/rdoc/rdoc/template.rb +234 -0
- data/tools/rdoc/rdoc/tokenstream.rb +25 -0
- data/tools/rdoc/rdoc.rb +9 -0
- metadata +291 -0
@@ -0,0 +1,149 @@
|
|
1
|
+
=head1 NAME
|
2
|
+
|
3
|
+
rdoc - Generate documentation from ruby source files
|
4
|
+
|
5
|
+
=head1 SYNOPSIS
|
6
|
+
|
7
|
+
Usage:
|
8
|
+
|
9
|
+
rdoc [options] [names...]
|
10
|
+
|
11
|
+
=head1 DESCRIPTION
|
12
|
+
|
13
|
+
Files are parsed, and the information they contain
|
14
|
+
collected, before any output is produced. This allows cross
|
15
|
+
references between all files to be resolved. If a name is a
|
16
|
+
directory, it is traversed. If no names are specified, all
|
17
|
+
Ruby files in the current directory (and subdirectories) are
|
18
|
+
processed.
|
19
|
+
|
20
|
+
=head1 OPTIONS
|
21
|
+
|
22
|
+
Options:
|
23
|
+
|
24
|
+
=over 8
|
25
|
+
|
26
|
+
=item B<-a>, B<--all>
|
27
|
+
|
28
|
+
include all methods (not just public) in the output
|
29
|
+
|
30
|
+
=item B<-c> I<charset>, B<--charset> I<charset>
|
31
|
+
|
32
|
+
specifies HTML character-set
|
33
|
+
|
34
|
+
=item B<-D>, B<--debug>
|
35
|
+
|
36
|
+
displays lots on internal stuff
|
37
|
+
|
38
|
+
=item B<-d>, B<--diagram>
|
39
|
+
|
40
|
+
Generate diagrams showing modules and classes.
|
41
|
+
You need dot V1.8.6 or later to use the --diagram
|
42
|
+
option correctly. Dot is available from
|
43
|
+
http://www.research.att.com/sw/tools/graphviz/
|
44
|
+
|
45
|
+
=item B<-x> I<pattern>, B<--exclude> I<pattern>
|
46
|
+
|
47
|
+
do not process files or directories matching
|
48
|
+
pattern. Files given explicitly on the command
|
49
|
+
line will never be excluded.
|
50
|
+
|
51
|
+
=item B<-F>, B<--fileboxes>
|
52
|
+
|
53
|
+
classes are put in boxes which represents
|
54
|
+
files, where these classes reside. Classes
|
55
|
+
shared between more than one file are
|
56
|
+
shown with list of files that sharing them.
|
57
|
+
Silently discarded if --diagram is not given
|
58
|
+
Experimental.
|
59
|
+
|
60
|
+
=item B<-f> I<format_name>, B<--fmt> I<format_name>
|
61
|
+
|
62
|
+
set the output formatter (see below)
|
63
|
+
|
64
|
+
=item B<-h>, B<--help>
|
65
|
+
|
66
|
+
print out a brief help summary
|
67
|
+
|
68
|
+
=item B<-O>, B<--help-output>
|
69
|
+
|
70
|
+
explain the various output options
|
71
|
+
|
72
|
+
=item B<-I> I<gif|jpg|jpg|jpeg>, B<--image-format> I<gif|png|jpg|jpeg>
|
73
|
+
|
74
|
+
Sets output image format for diagrams. Can
|
75
|
+
be png, gif, jpeg, jpg. If this option is
|
76
|
+
omitted, png is used. Requires --diagram.
|
77
|
+
|
78
|
+
=item B<-i> I<dir[,dir,...]>, B<--include> I<dir[,dir,...]>
|
79
|
+
|
80
|
+
set (or add to) the list of directories
|
81
|
+
to be searched when satisfying :include:
|
82
|
+
requests. Can be used more than once.
|
83
|
+
|
84
|
+
=item B<-S>, B<--inline-source>
|
85
|
+
|
86
|
+
Show method source code inline, rather
|
87
|
+
than via a popup link
|
88
|
+
|
89
|
+
=item B<-N>, B<--line-numbers>
|
90
|
+
|
91
|
+
Include line numbers in the source code
|
92
|
+
|
93
|
+
=item B<-m> I<name>, B<--main> I<name>
|
94
|
+
|
95
|
+
'name' will be the initial page displayed
|
96
|
+
|
97
|
+
=item B<-1>, B<--one-file>
|
98
|
+
|
99
|
+
put all the output into a single file
|
100
|
+
|
101
|
+
=item B<-o> I<dir>, B<--op> I<dir>
|
102
|
+
|
103
|
+
set the output directory
|
104
|
+
|
105
|
+
=item B<-n> I<name>, B<--opname> I<name>
|
106
|
+
|
107
|
+
Set the 'name' of the output. Has no
|
108
|
+
effect for HTML.
|
109
|
+
|
110
|
+
=item B<-q>, B<--quiet>
|
111
|
+
|
112
|
+
don't show progress as we parse
|
113
|
+
|
114
|
+
=item B<-H>, B<--show-hash>
|
115
|
+
|
116
|
+
A name of the form #name in a comment
|
117
|
+
is a possible hyperlink to an instance
|
118
|
+
method name. When displayed, the '#' is
|
119
|
+
removed unless this option is specified
|
120
|
+
|
121
|
+
=item B<-w> I<width>, B<--tab-width> I<width>
|
122
|
+
|
123
|
+
Set the width of tab characters (default 8)
|
124
|
+
|
125
|
+
=item B<-T> I<template_name>, B<--template> I<template_name>
|
126
|
+
|
127
|
+
Set the template used when generating output
|
128
|
+
|
129
|
+
=item B<-t> I<text>, B<--title> I<text>
|
130
|
+
|
131
|
+
Set 'txt' as the title for the output
|
132
|
+
|
133
|
+
=item B<-v>, B<--version>
|
134
|
+
|
135
|
+
display RDoc's version
|
136
|
+
|
137
|
+
=back
|
138
|
+
|
139
|
+
=head1 NOTES
|
140
|
+
|
141
|
+
Available output formatters: chm, html, xml
|
142
|
+
|
143
|
+
For information on where the output goes, use
|
144
|
+
|
145
|
+
rdoc --help-output
|
146
|
+
|
147
|
+
=head1 AUTHOR
|
148
|
+
|
149
|
+
This manpage was contributed by Brian Almeida <bma@debian.org>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
#!/usr/bin/make -f
|
2
|
+
|
3
|
+
include /usr/share/cdbs/1/rules/debhelper.mk
|
4
|
+
|
5
|
+
|
6
|
+
common-install-arch common-install-indep:: common-install-impl
|
7
|
+
common-install-impl::
|
8
|
+
DESTDIR=$(CURDIR)/debian/rdoc ruby install.rb
|
9
|
+
chmod a+x $(CURDIR)/debian/rdoc/usr/lib/ruby/1.6/rdoc/parsers/parse_rb.rb
|
@@ -0,0 +1,255 @@
|
|
1
|
+
module DOT
|
2
|
+
|
3
|
+
# these glogal vars are used to make nice graph source
|
4
|
+
$tab = ' '
|
5
|
+
$tab2 = $tab * 2
|
6
|
+
|
7
|
+
# if we don't like 4 spaces, we can change it any time
|
8
|
+
def change_tab( t )
|
9
|
+
$tab = t
|
10
|
+
$tab2 = t * 2
|
11
|
+
end
|
12
|
+
|
13
|
+
# options for node declaration
|
14
|
+
NODE_OPTS = [
|
15
|
+
'bgcolor',
|
16
|
+
'color',
|
17
|
+
'fontcolor',
|
18
|
+
'fontname',
|
19
|
+
'fontsize',
|
20
|
+
'height',
|
21
|
+
'width',
|
22
|
+
'label',
|
23
|
+
'layer',
|
24
|
+
'rank',
|
25
|
+
'shape',
|
26
|
+
'shapefile',
|
27
|
+
'style',
|
28
|
+
'URL',
|
29
|
+
]
|
30
|
+
|
31
|
+
# options for edge declaration
|
32
|
+
EDGE_OPTS = [
|
33
|
+
'color',
|
34
|
+
'decorate',
|
35
|
+
'dir',
|
36
|
+
'fontcolor',
|
37
|
+
'fontname',
|
38
|
+
'fontsize',
|
39
|
+
'id',
|
40
|
+
'label',
|
41
|
+
'layer',
|
42
|
+
'lhead',
|
43
|
+
'ltail',
|
44
|
+
'minlen',
|
45
|
+
'style',
|
46
|
+
'weight'
|
47
|
+
]
|
48
|
+
|
49
|
+
# options for graph declaration
|
50
|
+
GRAPH_OPTS = [
|
51
|
+
'bgcolor',
|
52
|
+
'center',
|
53
|
+
'clusterrank',
|
54
|
+
'color',
|
55
|
+
'compound',
|
56
|
+
'concentrate',
|
57
|
+
'fillcolor',
|
58
|
+
'fontcolor',
|
59
|
+
'fontname',
|
60
|
+
'fontsize',
|
61
|
+
'label',
|
62
|
+
'layerseq',
|
63
|
+
'margin',
|
64
|
+
'mclimit',
|
65
|
+
'nodesep',
|
66
|
+
'nslimit',
|
67
|
+
'ordering',
|
68
|
+
'orientation',
|
69
|
+
'page',
|
70
|
+
'rank',
|
71
|
+
'rankdir',
|
72
|
+
'ranksep',
|
73
|
+
'ratio',
|
74
|
+
'size',
|
75
|
+
'style',
|
76
|
+
'URL'
|
77
|
+
]
|
78
|
+
|
79
|
+
# a root class for any element in dot notation
|
80
|
+
class DOTSimpleElement
|
81
|
+
attr_accessor :name
|
82
|
+
|
83
|
+
def initialize( params = {} )
|
84
|
+
@label = params['name'] ? params['name'] : ''
|
85
|
+
end
|
86
|
+
|
87
|
+
def to_s
|
88
|
+
@name
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# an element that has options ( node, edge or graph )
|
93
|
+
class DOTElement < DOTSimpleElement
|
94
|
+
#attr_reader :parent
|
95
|
+
attr_accessor :name, :options
|
96
|
+
|
97
|
+
def initialize( params = {}, option_list = [] )
|
98
|
+
super( params )
|
99
|
+
@name = params['name'] ? params['name'] : nil
|
100
|
+
@parent = params['parent'] ? params['parent'] : nil
|
101
|
+
@options = {}
|
102
|
+
option_list.each{ |i|
|
103
|
+
@options[i] = params[i] if params[i]
|
104
|
+
}
|
105
|
+
@options['label'] ||= @name if @name != 'node'
|
106
|
+
end
|
107
|
+
|
108
|
+
def each_option
|
109
|
+
@options.each{ |i| yield i }
|
110
|
+
end
|
111
|
+
|
112
|
+
def each_option_pair
|
113
|
+
@options.each_pair{ |key, val| yield key, val }
|
114
|
+
end
|
115
|
+
|
116
|
+
#def parent=( thing )
|
117
|
+
# @parent.delete( self ) if defined?( @parent ) and @parent
|
118
|
+
# @parent = thing
|
119
|
+
#end
|
120
|
+
end
|
121
|
+
|
122
|
+
|
123
|
+
# this is used when we build nodes that have shape=record
|
124
|
+
# ports don't have options :)
|
125
|
+
class DOTPort < DOTSimpleElement
|
126
|
+
attr_accessor :label
|
127
|
+
|
128
|
+
def initialize( params = {} )
|
129
|
+
super( params )
|
130
|
+
@name = params['label'] ? params['label'] : ''
|
131
|
+
end
|
132
|
+
def to_s
|
133
|
+
( @name && @name != "" ? "<#{@name}>" : "" ) + "#{@label}"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
# node element
|
138
|
+
class DOTNode < DOTElement
|
139
|
+
|
140
|
+
def initialize( params = {}, option_list = NODE_OPTS )
|
141
|
+
super( params, option_list )
|
142
|
+
@ports = params['ports'] ? params['ports'] : []
|
143
|
+
end
|
144
|
+
|
145
|
+
def each_port
|
146
|
+
@ports.each{ |i| yield i }
|
147
|
+
end
|
148
|
+
|
149
|
+
def << ( thing )
|
150
|
+
@ports << thing
|
151
|
+
end
|
152
|
+
|
153
|
+
def push ( thing )
|
154
|
+
@ports.push( thing )
|
155
|
+
end
|
156
|
+
|
157
|
+
def pop
|
158
|
+
@ports.pop
|
159
|
+
end
|
160
|
+
|
161
|
+
def to_s( t = '' )
|
162
|
+
|
163
|
+
label = @options['shape'] != 'record' && @ports.length == 0 ?
|
164
|
+
@options['label'] ?
|
165
|
+
t + $tab + "label = \"#{@options['label']}\"\n" :
|
166
|
+
'' :
|
167
|
+
t + $tab + 'label = "' + " \\\n" +
|
168
|
+
t + $tab2 + "#{@options['label']}| \\\n" +
|
169
|
+
@ports.collect{ |i|
|
170
|
+
t + $tab2 + i.to_s
|
171
|
+
}.join( "| \\\n" ) + " \\\n" +
|
172
|
+
t + $tab + '"' + "\n"
|
173
|
+
|
174
|
+
t + "#{@name} [\n" +
|
175
|
+
@options.to_a.collect{ |i|
|
176
|
+
i[1] && i[0] != 'label' ?
|
177
|
+
t + $tab + "#{i[0]} = #{i[1]}" : nil
|
178
|
+
}.compact.join( ",\n" ) + ( label != '' ? ",\n" : "\n" ) +
|
179
|
+
label +
|
180
|
+
t + "]\n"
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
# subgraph element is the same to graph, but has another header in dot
|
185
|
+
# notation
|
186
|
+
class DOTSubgraph < DOTElement
|
187
|
+
|
188
|
+
def initialize( params = {}, option_list = GRAPH_OPTS )
|
189
|
+
super( params, option_list )
|
190
|
+
@nodes = params['nodes'] ? params['nodes'] : []
|
191
|
+
@dot_string = 'subgraph'
|
192
|
+
end
|
193
|
+
|
194
|
+
def each_node
|
195
|
+
@nodes.each{ |i| yield i }
|
196
|
+
end
|
197
|
+
|
198
|
+
def << ( thing )
|
199
|
+
@nodes << thing
|
200
|
+
end
|
201
|
+
|
202
|
+
def push( thing )
|
203
|
+
@nodes.push( thing )
|
204
|
+
end
|
205
|
+
|
206
|
+
def pop
|
207
|
+
@nodes.pop
|
208
|
+
end
|
209
|
+
|
210
|
+
def to_s( t = '' )
|
211
|
+
hdr = t + "#{@dot_string} #{@name} {\n"
|
212
|
+
|
213
|
+
options = @options.to_a.collect{ |name, val|
|
214
|
+
val && name != 'label' ?
|
215
|
+
t + $tab + "#{name} = #{val}" :
|
216
|
+
name ? t + $tab + "#{name} = \"#{val}\"" : nil
|
217
|
+
}.compact.join( "\n" ) + "\n"
|
218
|
+
|
219
|
+
nodes = @nodes.collect{ |i|
|
220
|
+
i.to_s( t + $tab )
|
221
|
+
}.join( "\n" ) + "\n"
|
222
|
+
hdr + options + nodes + t + "}\n"
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
# this is graph
|
227
|
+
class DOTDigraph < DOTSubgraph
|
228
|
+
def initialize( params = {}, option_list = GRAPH_OPTS )
|
229
|
+
super( params, option_list )
|
230
|
+
@dot_string = 'digraph'
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
# this is edge
|
235
|
+
class DOTEdge < DOTElement
|
236
|
+
attr_accessor :from, :to
|
237
|
+
def initialize( params = {}, option_list = EDGE_OPTS )
|
238
|
+
super( params, option_list )
|
239
|
+
@from = params['from'] ? params['from'] : nil
|
240
|
+
@to = params['to'] ? params['to'] : nil
|
241
|
+
end
|
242
|
+
|
243
|
+
def to_s( t = '' )
|
244
|
+
t + "#{@from} -> #{to} [\n" +
|
245
|
+
@options.to_a.collect{ |i|
|
246
|
+
i[1] && i[0] != 'label' ?
|
247
|
+
t + $tab + "#{i[0]} = #{i[1]}" :
|
248
|
+
i[1] ? t + $tab + "#{i[0]} = \"#{i[1]}\"" : nil
|
249
|
+
}.compact.join( "\n" ) + "\n" + t + "]\n"
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
|
255
|
+
|
@@ -0,0 +1,203 @@
|
|
1
|
+
<!--
|
2
|
+
This is the DTD for the XML produced by the RDoc package.
|
3
|
+
|
4
|
+
Some conventions:
|
5
|
+
|
6
|
+
Cross references:
|
7
|
+
- targets are labeled using id="..." attributes
|
8
|
+
- references use conventional <a href="...">...</a> notation
|
9
|
+
|
10
|
+
|
11
|
+
-->
|
12
|
+
|
13
|
+
|
14
|
+
<!-- ==================== common entities ======================== -->
|
15
|
+
|
16
|
+
<!ENTITY % idattr
|
17
|
+
"id CDATA #IMPLIED"
|
18
|
+
>
|
19
|
+
|
20
|
+
<!ENTITY % name-id
|
21
|
+
"id CDATA #IMPLIED
|
22
|
+
name CDATA #REQUIRED"
|
23
|
+
>
|
24
|
+
|
25
|
+
<!-- a name or a reference to a name -->
|
26
|
+
|
27
|
+
<!ENTITY % aref "(#PCDATA | a)*">
|
28
|
+
|
29
|
+
<!-- the contents of a markup section -->
|
30
|
+
|
31
|
+
<!ENTITY % markup.attrs "b | tt | em">
|
32
|
+
|
33
|
+
<!ENTITY % markup.lists "ul | ol | dl | table ">
|
34
|
+
|
35
|
+
<!ENTITY % markup.heading "h1 | h2 | h3 | h4 | h5 | h6 ">
|
36
|
+
|
37
|
+
<!ENTITY % markup.internal "#PCDATA | p | a | pre | hr | %markup.attrs; | %markup.lists;">
|
38
|
+
|
39
|
+
<!ENTITY % flow "(#PCDATA | %markup.attrs;)*">
|
40
|
+
|
41
|
+
<!ENTITY % markup "(%markup.internal;)*">
|
42
|
+
|
43
|
+
<!ENTITY % toplevel "(%markup.internal; | %markup.heading;)*">
|
44
|
+
|
45
|
+
<!-- ================== document structure ======================= -->
|
46
|
+
|
47
|
+
<!ELEMENT rdoc (file-list?, class-module-list?)>
|
48
|
+
|
49
|
+
<!-- ================== file-list ================================
|
50
|
+
|
51
|
+
A file list contains a <file> entry for every source file
|
52
|
+
processed.
|
53
|
+
|
54
|
+
-->
|
55
|
+
|
56
|
+
<!ELEMENT file-list (file*)>
|
57
|
+
|
58
|
+
<!ELEMENT file (file-info, description?, contents)>
|
59
|
+
<!ATTLIST file %name-id;>
|
60
|
+
|
61
|
+
|
62
|
+
<!ELEMENT file-info (path, dtm-modified)>
|
63
|
+
|
64
|
+
<!-- the full path to the file -->
|
65
|
+
|
66
|
+
<!ELEMENT path (#PCDATA)>
|
67
|
+
|
68
|
+
<!-- last modified dtms of file -->
|
69
|
+
|
70
|
+
<!ELEMENT dtm-modified (#PCDATA)>
|
71
|
+
|
72
|
+
|
73
|
+
<!-- =================== class list ======================== -->
|
74
|
+
|
75
|
+
<!ELEMENT class-module-list (Class|Module)*>
|
76
|
+
|
77
|
+
<!ELEMENT Class (classmod-info, description?, contents)>
|
78
|
+
<!ATTLIST Class %name-id;>
|
79
|
+
|
80
|
+
<!ELEMENT Module (classmod-info, description?, contents)>
|
81
|
+
<!ATTLIST Module %name-id;>
|
82
|
+
|
83
|
+
<!ELEMENT classmod-info (infiles?, superclass?)>
|
84
|
+
|
85
|
+
<!ELEMENT infiles (infile*)>
|
86
|
+
|
87
|
+
<!ELEMENT infile %aref;>
|
88
|
+
|
89
|
+
<!ELEMENT superclass %aref;>
|
90
|
+
|
91
|
+
|
92
|
+
<!-- ==================== description =========================== -->
|
93
|
+
|
94
|
+
<!ELEMENT description %toplevel;>
|
95
|
+
|
96
|
+
<!-- ==================== contents ==============================
|
97
|
+
|
98
|
+
These are the contents, shared between files and classes
|
99
|
+
|
100
|
+
-->
|
101
|
+
|
102
|
+
<!ELEMENT contents (required-file-list?,
|
103
|
+
attribute-list?,
|
104
|
+
included-module-list?,
|
105
|
+
method-list?)>
|
106
|
+
|
107
|
+
<!ELEMENT required-file-list (required-file*)>
|
108
|
+
|
109
|
+
<!ELEMENT required-file EMPTY>
|
110
|
+
<!ATTLIST required-file
|
111
|
+
name CDATA #REQUIRED
|
112
|
+
href CDATA #IMPLIED
|
113
|
+
>
|
114
|
+
|
115
|
+
<!ELEMENT attribute-list (attribute*)>
|
116
|
+
|
117
|
+
<!ELEMENT attribute (attribute-rw, description)>
|
118
|
+
<!ATTLIST attribute
|
119
|
+
name CDATA #REQUIRED
|
120
|
+
>
|
121
|
+
|
122
|
+
<!ELEMENT attribute-name (#PCDATA)>
|
123
|
+
<!ELEMENT attribute-rw (#PCDATA)>
|
124
|
+
|
125
|
+
<!ELEMENT included-module-list (included-module*)>
|
126
|
+
|
127
|
+
<!ELEMENT included-module EMPTY>
|
128
|
+
<!ATTLIST included-module
|
129
|
+
name CDATA #REQUIRED
|
130
|
+
href CDATA #IMPLIED
|
131
|
+
>
|
132
|
+
|
133
|
+
<!ELEMENT method-list (method*)>
|
134
|
+
|
135
|
+
<!ELEMENT method (parameters, description?, source-code-listing?)>
|
136
|
+
<!ATTLIST method
|
137
|
+
name CDATA #REQUIRED
|
138
|
+
id CDATA #REQUIRED
|
139
|
+
type (Public | Private | Protected) #REQUIRED
|
140
|
+
category (Instance | Class) #REQUIRED
|
141
|
+
>
|
142
|
+
|
143
|
+
<!ELEMENT parameters (#PCDATA)>
|
144
|
+
|
145
|
+
<!ELEMENT source-code-listing (#PCDATA | span)*>
|
146
|
+
|
147
|
+
<!-- for marking up code
|
148
|
+
kw - keyword
|
149
|
+
cmt - comment
|
150
|
+
str - string
|
151
|
+
re - regexp
|
152
|
+
-->
|
153
|
+
|
154
|
+
<!ELEMENT span (#PCDATA)>
|
155
|
+
<!ATTLIST span
|
156
|
+
class (kw | cmt | str | re) #REQUIRED
|
157
|
+
>
|
158
|
+
|
159
|
+
<!-- ================== cross references ================== -->
|
160
|
+
|
161
|
+
<!ELEMENT a (#PCDATA)>
|
162
|
+
<!ATTLIST a
|
163
|
+
href CDATA #REQUIRED
|
164
|
+
>
|
165
|
+
|
166
|
+
<!-- ================== markup ============================ -->
|
167
|
+
|
168
|
+
<!ELEMENT p %markup;>
|
169
|
+
|
170
|
+
<!ELEMENT h1 %flow;>
|
171
|
+
<!ELEMENT h2 %flow;>
|
172
|
+
<!ELEMENT h3 %flow;>
|
173
|
+
<!ELEMENT h4 %flow;>
|
174
|
+
<!ELEMENT h5 %flow;>
|
175
|
+
<!ELEMENT h6 %flow;>
|
176
|
+
|
177
|
+
<!ELEMENT b %markup;>
|
178
|
+
<!ELEMENT tt %markup;>
|
179
|
+
<!ELEMENT em %markup;>
|
180
|
+
|
181
|
+
<!ELEMENT pre (#PCDATA)>
|
182
|
+
|
183
|
+
<!ELEMENT hr EMPTY>
|
184
|
+
<!ATTLIST hr
|
185
|
+
size CDATA #IMPLIED
|
186
|
+
>
|
187
|
+
|
188
|
+
|
189
|
+
<!ELEMENT ul (li*)>
|
190
|
+
<!ELEMENT ol (li*)>
|
191
|
+
<!ELEMENT li %markup;>
|
192
|
+
<!ELEMENT dl (dt|dd)+>
|
193
|
+
<!ELEMENT dt %markup;>
|
194
|
+
<!ELEMENT dd %markup;>
|
195
|
+
|
196
|
+
<!ELEMENT table (tr)+>
|
197
|
+
|
198
|
+
<!ELEMENT tr (td)+>
|
199
|
+
|
200
|
+
<!ELEMENT td %markup;>
|
201
|
+
<!ATTLIST td
|
202
|
+
valign CDATA #FIXED "top"
|
203
|
+
>
|