xamplr 1.3.15 → 1.9.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.
Files changed (163) hide show
  1. data/.gitignore +1 -0
  2. data/COPYING +160 -656
  3. data/LICENSE +1 -1
  4. data/README.md +33 -0
  5. data/Rakefile +2 -2
  6. data/VERSION.yml +2 -2
  7. data/lib/xamplr.rb +1 -0
  8. data/lib/xamplr/iterator.rb +123 -0
  9. data/lib/xamplr/xml-text.rb +5 -5
  10. data/xamplr.gemspec +9 -204
  11. metadata +13 -203
  12. data/README.rdoc +0 -46
  13. data/README.rdoc.orig +0 -118
  14. data/bin/xampl-gen +0 -17
  15. data/docs/intro/.gitignore +0 -1
  16. data/docs/intro/example1/example1.rb +0 -6
  17. data/docs/intro/example1/xml/hello.xml +0 -1
  18. data/docs/intro/example2/example2.rb +0 -38
  19. data/docs/intro/example2/project-generator.rb +0 -22
  20. data/docs/intro/example2/xml/hello.xml +0 -2
  21. data/docs/intro/example3/example3.rb +0 -30
  22. data/docs/intro/example3/example3a.rb +0 -16
  23. data/docs/intro/example3/generated.png +0 -0
  24. data/docs/intro/example3/grab-yuml.rb +0 -10
  25. data/docs/intro/example3/greeter.rb +0 -15
  26. data/docs/intro/example3/greeting.rb +0 -9
  27. data/docs/intro/example3/project-generator.rb +0 -25
  28. data/docs/intro/example3/xml/greeter.xml +0 -6
  29. data/docs/intro/example4/example4.rb +0 -27
  30. data/docs/intro/example4/example4a.rb +0 -19
  31. data/docs/intro/example4/grab-yuml.rb +0 -10
  32. data/docs/intro/example4/greeter.rb +0 -15
  33. data/docs/intro/example4/greeting.rb +0 -9
  34. data/docs/intro/example4/project-generator.rb +0 -25
  35. data/docs/intro/example4/xml/greeter.xml +0 -6
  36. data/docs/intro/grab-yuml.rb +0 -10
  37. data/docs/intro/project-generator.rb +0 -51
  38. data/docs/intro/xampl.lyx +0 -1494
  39. data/docs/intro/xampl.pdf +0 -0
  40. data/examples/employees/final-xampl/xampl-gen.rb +0 -38
  41. data/examples/employees/final-xampl/xml/ddd-final-xampl.xml +0 -86
  42. data/examples/employees/final/xampl-gen.rb +0 -38
  43. data/examples/employees/final/xml/ddd-final.xml +0 -86
  44. data/examples/employees/first/xampl-gen.rb +0 -38
  45. data/examples/employees/first/xml/ddd-first.xml +0 -48
  46. data/examples/employees/twist/twist.graphml +0 -333
  47. data/examples/employees/twist/xampl-gen.rb +0 -38
  48. data/examples/employees/twist/xml/twist.xml +0 -90
  49. data/examples/employees/xamplr-twist.xml +0 -2
  50. data/examples/employees/yuml-diagrams/DDD-final-approach.graphml +0 -393
  51. data/examples/employees/yuml-diagrams/DDD-final-xampl-approach.graphml +0 -265
  52. data/examples/employees/yuml-diagrams/DDD-ideal-final-approach.graphml +0 -357
  53. data/examples/employees/yuml-diagrams/ddd-final.png +0 -0
  54. data/examples/employees/yuml-diagrams/ddd-final.yuml +0 -8
  55. data/examples/employees/yuml-diagrams/ddd-first.png +0 -0
  56. data/examples/employees/yuml-diagrams/ddd-first.yuml +0 -7
  57. data/examples/employees/yuml-diagrams/final-yed.png +0 -0
  58. data/examples/employees/yuml-diagrams/first-yed.png +0 -0
  59. data/examples/employees/yuml-diagrams/twist.png +0 -0
  60. data/examples/employees/yuml-diagrams/twist.yuml +0 -12
  61. data/examples/employees/yuml-diagrams/xamplr-final-no-mixins.png +0 -0
  62. data/examples/employees/yuml-diagrams/xamplr-final-simplified.png +0 -0
  63. data/examples/employees/yuml-diagrams/xamplr-final-with-mixins.png +0 -0
  64. data/examples/employees/yuml-diagrams/yuml-simplified.txt +0 -19
  65. data/examples/employees/yuml-diagrams/yuml-with-mixins.txt +0 -53
  66. data/examples/employees/yuml-diagrams/yuml.txt +0 -27
  67. data/examples/hobbies/Makefile +0 -5
  68. data/examples/hobbies/hobbies.rb +0 -193
  69. data/examples/hobbies/project-generator.rb +0 -25
  70. data/examples/hobbies/xampl-gen.rb +0 -38
  71. data/examples/hobbies/xml/hobby.xml +0 -3
  72. data/examples/hobbies/xml/people.xml +0 -5
  73. data/examples/random-people-shared-addresses/.gitignore +0 -2
  74. data/examples/random-people-shared-addresses/Makefile +0 -15
  75. data/examples/random-people-shared-addresses/batch-load-users-profiled.rb +0 -91
  76. data/examples/random-people-shared-addresses/batch-load-users-safe.rb +0 -81
  77. data/examples/random-people-shared-addresses/batch-load-users.rb +0 -79
  78. data/examples/random-people-shared-addresses/find-mentions.rb +0 -47
  79. data/examples/random-people-shared-addresses/find-people-by-address.rb +0 -104
  80. data/examples/random-people-shared-addresses/optimise.rb +0 -16
  81. data/examples/random-people-shared-addresses/people.rb +0 -35
  82. data/examples/random-people-shared-addresses/query.rb +0 -75
  83. data/examples/random-people-shared-addresses/query2.rb +0 -73
  84. data/examples/random-people-shared-addresses/random-names.csv +0 -10000
  85. data/examples/random-people-shared-addresses/settings.rb +0 -3
  86. data/examples/random-people-shared-addresses/what-to-query-on.rb +0 -82
  87. data/examples/random-people-shared-addresses/xampl-gen.rb +0 -38
  88. data/examples/random-people-shared-addresses/xml/people.xml +0 -14
  89. data/examples/random-people/.gitignore +0 -2
  90. data/examples/random-people/Makefile +0 -20
  91. data/examples/random-people/batch-load-users.rb +0 -61
  92. data/examples/random-people/optimise.rb +0 -16
  93. data/examples/random-people/people.rb +0 -22
  94. data/examples/random-people/query.rb +0 -73
  95. data/examples/random-people/query2.rb +0 -73
  96. data/examples/random-people/random-names.csv +0 -10000
  97. data/examples/random-people/rawtc.rb +0 -91
  98. data/examples/random-people/settings.rb +0 -3
  99. data/examples/random-people/what-to-query-on.rb +0 -80
  100. data/examples/random-people/xampl-gen.rb +0 -39
  101. data/examples/random-people/xml/people.xml +0 -11
  102. data/examples/read-testing/.gitignore +0 -2
  103. data/examples/read-testing/Makefile +0 -10
  104. data/examples/read-testing/load.rb +0 -65
  105. data/examples/read-testing/read.rb +0 -51
  106. data/examples/read-testing/rrr.rb +0 -88
  107. data/examples/read-testing/settings.rb +0 -2
  108. data/examples/read-testing/xampl-gen.rb +0 -38
  109. data/examples/read-testing/xml/text.xml +0 -8
  110. data/examples/tokyo-cabinet-experimental/.gitignore +0 -2
  111. data/examples/tokyo-cabinet-experimental/expt-query.rb +0 -42
  112. data/examples/tokyo-cabinet-experimental/expt-query2.rb +0 -42
  113. data/examples/tokyo-cabinet-experimental/expt-query3.rb +0 -41
  114. data/examples/tokyo-cabinet-experimental/expt-reader.rb +0 -32
  115. data/examples/tokyo-cabinet-experimental/expt.rb +0 -61
  116. data/examples/tokyo-cabinet-experimental/xampl-gen.rb +0 -38
  117. data/examples/tokyo-cabinet-experimental/xml/tcx.xml +0 -6
  118. data/examples/write-testing/README +0 -4
  119. data/examples/write-testing/RESULTS.home +0 -33
  120. data/examples/write-testing/RESULTS.raconteur +0 -33
  121. data/examples/write-testing/write-speed-test.rb +0 -40
  122. data/lib/xampl-generator.rb +0 -3
  123. data/lib/xamplr-generator.rb +0 -9
  124. data/lib/xamplr/gen-elements.xml +0 -6230
  125. data/lib/xamplr/gen.elements.xml +0 -108
  126. data/lib/xamplr/generate-elements.rb +0 -15
  127. data/lib/xamplr/generator.rb +0 -5
  128. data/lib/xamplr/graphml-out.rb +0 -451
  129. data/lib/xamplr/handwritten/example.rb +0 -698
  130. data/lib/xamplr/handwritten/hand-example.rb +0 -533
  131. data/lib/xamplr/handwritten/test-handwritten.rb +0 -873
  132. data/lib/xamplr/my.gen.elements.xml +0 -461
  133. data/lib/xamplr/obsolete/fsdb.rb +0 -62
  134. data/lib/xamplr/simpleTemplate/danger.rx +0 -4
  135. data/lib/xamplr/simpleTemplate/obsolete/input-c.r4 +0 -35
  136. data/lib/xamplr/simpleTemplate/obsolete/play.r6.txt +0 -12
  137. data/lib/xamplr/simpleTemplate/obsolete/play_more.r6.txt +0 -20
  138. data/lib/xamplr/simpleTemplate/obsolete/test001.r5 +0 -8
  139. data/lib/xamplr/simpleTemplate/obsolete/test002.r5 +0 -13
  140. data/lib/xamplr/simpleTemplate/obsolete/test003.r5 +0 -37
  141. data/lib/xamplr/simpleTemplate/old/r6.000.rb +0 -122
  142. data/lib/xamplr/simpleTemplate/old/r6.001.rb +0 -145
  143. data/lib/xamplr/simpleTemplate/play.r6 +0 -12
  144. data/lib/xamplr/simpleTemplate/play_more.r6 +0 -20
  145. data/lib/xamplr/simpleTemplate/play_noblanks.r6 +0 -21
  146. data/lib/xamplr/simpleTemplate/playq.r6 +0 -16
  147. data/lib/xamplr/simpleTemplate/r6.rb +0 -87
  148. data/lib/xamplr/simpleTemplate/simple-template.rb +0 -75
  149. data/lib/xamplr/templates/.cvsignore +0 -3
  150. data/lib/xamplr/templates/child.template +0 -47
  151. data/lib/xamplr/templates/child_indexed.template +0 -89
  152. data/lib/xamplr/templates/child_modules.template +0 -5
  153. data/lib/xamplr/templates/element_classes.template +0 -11
  154. data/lib/xamplr/templates/element_data.template +0 -283
  155. data/lib/xamplr/templates/element_empty.template +0 -277
  156. data/lib/xamplr/templates/element_mixed.template +0 -278
  157. data/lib/xamplr/templates/element_simple.template +0 -277
  158. data/lib/xamplr/templates/package.template +0 -38
  159. data/lib/xamplr/xampl-cl-gen.rb +0 -89
  160. data/lib/xamplr/xampl-generator.rb +0 -569
  161. data/lib/xamplr/xampl-hand-generated.rb +0 -1535
  162. data/lib/xamplr/yEd-sample.graphml +0 -300
  163. data/lib/xamplr/yuml-out.rb +0 -129
@@ -1,300 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <graphml xmlns="http://graphml.graphdrawing.org/xmlns/graphml"
3
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
- xmlns:y="http://www.yworks.com/xml/graphml"
5
- xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns/graphml http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd">
6
- <key for="node"
7
- id="d0"
8
- yfiles.type="nodegraphics"/>
9
- <key attr.name="description"
10
- attr.type="string"
11
- for="node"
12
- id="d1"/>
13
- <key for="edge"
14
- id="d2"
15
- yfiles.type="edgegraphics"/>
16
- <key attr.name="description"
17
- attr.type="string"
18
- for="edge"
19
- id="d3"/>
20
- <key for="graphml"
21
- id="d4"
22
- yfiles.type="resources"/>
23
- <graph edgedefault="directed"
24
- id="G"
25
- parse.edges="3"
26
- parse.nodes="4"
27
- parse.order="free">
28
- <node id="n0">
29
- <data key="d0">
30
- <y:UMLClassNode>
31
- <y:Geometry height="102.0"
32
- width="136.0"
33
- x="-18.0"
34
- y="349.0"/>
35
- <y:Fill color="#FFCC99"
36
- transparent="false"/>
37
- <y:BorderStyle color="#000000"
38
- type="line"
39
- width="1.0"/>
40
- <y:NodeLabel alignment="center"
41
- autoSizePolicy="content"
42
- fontFamily="Dialog"
43
- fontSize="13"
44
- fontStyle="bold"
45
- hasBackgroundColor="false"
46
- hasLineColor="false"
47
- height="19.310546875"
48
- modelName="internal"
49
- modelPosition="c"
50
- textColor="#000000"
51
- visible="true"
52
- width="110.818359375"
53
- x="12.5908203125"
54
- y="26.1328125">AddressAsChild
55
- </y:NodeLabel>
56
- <y:UML clipContent="true"
57
- constraint=""
58
- omitDetails="false"
59
- stereotype="mixin"
60
- use3DEffect="false">
61
- <y:AttributeLabel>bar</y:AttributeLabel>
62
- <y:MethodLabel>foo()</y:MethodLabel>
63
- </y:UML>
64
- </y:UMLClassNode>
65
- </data>
66
- <data key="d1">UMLClass</data>
67
- </node>
68
- <node id="n1">
69
- <data key="d0">
70
- <y:UMLClassNode>
71
- <y:Geometry height="102.0"
72
- width="111.0"
73
- x="-5.5"
74
- y="174.0"/>
75
- <y:Fill color="#99CCFF"
76
- transparent="false"/>
77
- <y:BorderStyle color="#000000"
78
- type="line"
79
- width="2.0"/>
80
- <y:NodeLabel alignment="center"
81
- autoSizePolicy="content"
82
- fontFamily="Dialog"
83
- fontSize="13"
84
- fontStyle="bold"
85
- hasBackgroundColor="false"
86
- hasLineColor="false"
87
- height="19.310546875"
88
- modelName="internal"
89
- modelPosition="c"
90
- textColor="#000000"
91
- visible="true"
92
- width="49.6904296875"
93
- x="30.65478515625"
94
- y="26.1328125">Person
95
- </y:NodeLabel>
96
- <y:UML clipContent="true"
97
- constraint=""
98
- omitDetails="false"
99
- stereotype="entity, data"
100
- use3DEffect="false">
101
- <y:AttributeLabel>bar</y:AttributeLabel>
102
- <y:MethodLabel>foo()</y:MethodLabel>
103
- </y:UML>
104
- </y:UMLClassNode>
105
- </data>
106
- <data key="d1">UMLClass</data>
107
- </node>
108
- <node id="n2">
109
- <data key="d0">
110
- <y:UMLClassNode>
111
- <y:Geometry height="102.0"
112
- width="91.0"
113
- x="4.5"
114
- y="-1.0"/>
115
- <y:Fill color="#CCFFCC"
116
- transparent="false"/>
117
- <y:BorderStyle color="#000000"
118
- type="line"
119
- width="1.0"/>
120
- <y:NodeLabel alignment="center"
121
- autoSizePolicy="content"
122
- fontFamily="Dialog"
123
- fontSize="13"
124
- fontStyle="bold"
125
- hasBackgroundColor="false"
126
- hasLineColor="false"
127
- height="19.310546875"
128
- modelName="internal"
129
- modelPosition="c"
130
- textColor="#000000"
131
- visible="true"
132
- width="39.83251953125"
133
- x="25.583740234375"
134
- y="26.1328125">Class
135
- </y:NodeLabel>
136
- <y:UML clipContent="true"
137
- constraint=""
138
- omitDetails="false"
139
- stereotype="simple"
140
- use3DEffect="false">
141
- <y:AttributeLabel>bar</y:AttributeLabel>
142
- <y:MethodLabel>foo()</y:MethodLabel>
143
- </y:UML>
144
- </y:UMLClassNode>
145
- </data>
146
- <data key="d1">UMLClass</data>
147
- </node>
148
- <node id="n3">
149
- <data key="d0">
150
- <y:UMLClassNode>
151
- <y:Geometry height="102.0"
152
- width="127.0"
153
- x="161.5"
154
- y="174.0"/>
155
- <y:Fill color="#99CCFF"
156
- transparent="false"/>
157
- <y:BorderStyle color="#000000"
158
- type="line"
159
- width="3.0"/>
160
- <y:NodeLabel alignment="center"
161
- autoSizePolicy="content"
162
- fontFamily="Dialog"
163
- fontSize="13"
164
- fontStyle="bold"
165
- hasBackgroundColor="false"
166
- hasLineColor="false"
167
- height="19.310546875"
168
- modelName="internal"
169
- modelPosition="c"
170
- textColor="#000000"
171
- visible="true"
172
- width="59.02783203125"
173
- x="33.986083984375"
174
- y="26.1328125">Address
175
- </y:NodeLabel>
176
- <y:UML clipContent="true"
177
- constraint=""
178
- omitDetails="false"
179
- stereotype="entity, empty"
180
- use3DEffect="false">
181
- <y:AttributeLabel>bar</y:AttributeLabel>
182
- <y:MethodLabel>foo()</y:MethodLabel>
183
- </y:UML>
184
- </y:UMLClassNode>
185
- </data>
186
- <data key="d1">UMLClass</data>
187
- </node>
188
- <edge id="e0"
189
- source="n1"
190
- target="n0">
191
- <data key="d2">
192
- <y:PolyLineEdge>
193
- <y:Path sx="0.0"
194
- sy="0.0"
195
- tx="0.0"
196
- ty="0.0"/>
197
- <y:LineStyle color="#000000"
198
- type="line"
199
- width="1.0"/>
200
- <y:Arrows source="none"
201
- target="white_delta"/>
202
- <y:EdgeLabel alignment="center"
203
- distance="2.0"
204
- fontFamily="Dialog"
205
- fontSize="12"
206
- fontStyle="plain"
207
- hasBackgroundColor="false"
208
- hasLineColor="false"
209
- height="4.0"
210
- modelName="six_pos"
211
- modelPosition="tail"
212
- preferredPlacement="anywhere"
213
- ratio="0.5"
214
- textColor="#000000"
215
- visible="true"
216
- width="4.0"
217
- x="2.0"
218
- y="34.529541015625"></y:EdgeLabel>
219
- <y:BendStyle smoothed="false"/>
220
- </y:PolyLineEdge>
221
- </data>
222
- <data key="d3">UMLinherits</data>
223
- </edge>
224
- <edge id="e1"
225
- source="n1"
226
- target="n3">
227
- <data key="d2">
228
- <y:PolyLineEdge>
229
- <y:Path sx="0.0"
230
- sy="0.0"
231
- tx="0.0"
232
- ty="0.0"/>
233
- <y:LineStyle color="#000000"
234
- type="line"
235
- width="2.0"/>
236
- <y:Arrows source="none"
237
- target="short"/>
238
- <y:EdgeLabel alignment="center"
239
- distance="2.0"
240
- fontFamily="Dialog"
241
- fontSize="12"
242
- fontStyle="plain"
243
- hasBackgroundColor="false"
244
- hasLineColor="false"
245
- height="4.0"
246
- modelName="six_pos"
247
- modelPosition="tail"
248
- preferredPlacement="anywhere"
249
- ratio="0.5"
250
- textColor="#000000"
251
- visible="true"
252
- width="4.0"
253
- x="30.000732421875"
254
- y="2.0"></y:EdgeLabel>
255
- <y:BendStyle smoothed="false"/>
256
- </y:PolyLineEdge>
257
- </data>
258
- <data key="d3">UMLuses</data>
259
- </edge>
260
- <edge id="e2"
261
- source="n1"
262
- target="n2">
263
- <data key="d2">
264
- <y:PolyLineEdge>
265
- <y:Path sx="0.0"
266
- sy="0.0"
267
- tx="0.0"
268
- ty="0.0"/>
269
- <y:LineStyle color="#000000"
270
- type="line"
271
- width="1.0"/>
272
- <y:Arrows source="none"
273
- target="short"/>
274
- <y:EdgeLabel alignment="center"
275
- distance="2.0"
276
- fontFamily="Dialog"
277
- fontSize="12"
278
- fontStyle="plain"
279
- hasBackgroundColor="false"
280
- hasLineColor="false"
281
- height="4.0"
282
- modelName="six_pos"
283
- modelPosition="tail"
284
- preferredPlacement="anywhere"
285
- ratio="0.5"
286
- textColor="#000000"
287
- visible="true"
288
- width="4.0"
289
- x="2.0"
290
- y="-38.529541015625"></y:EdgeLabel>
291
- <y:BendStyle smoothed="false"/>
292
- </y:PolyLineEdge>
293
- </data>
294
- <data key="d3">UMLuses</data>
295
- </edge>
296
- </graph>
297
- <data key="d4">
298
- <y:Resources/>
299
- </data>
300
- </graphml>
@@ -1,129 +0,0 @@
1
- require 'fileutils'
2
- require 'set'
3
-
4
- module XamplGenerator
5
-
6
- class YUMLOut
7
-
8
- def initialize(elements_map)
9
- @elements_map = elements_map
10
- end
11
-
12
- def generate_class_nodes(element, include_mixins)
13
- return if ignore_package(element.package)
14
-
15
- class_name = "#{ element.package }::#{ element.class_name }"
16
- mixin_name = "#{ element.package }::#{ element.class_name }"
17
-
18
- @class_by_nstag[element.nstag] = element
19
- @class_names_by_nstag[element.nstag] = class_name
20
-
21
- if element.persisted then
22
- write_entity_node(class_name, element.kind)
23
- else
24
- write_internal_node(class_name, element.kind)
25
- end
26
-
27
- if include_mixins then
28
- write_mixin_node(class_name)
29
- end
30
- end
31
-
32
- def generate_edges(element, include_mixins)
33
- return if ignore_package(element.package)
34
-
35
- element_name = @class_names_by_nstag[ element.nstag ]
36
-
37
- element.child_element_child.each do | celement |
38
- next if ignore_package(celement.package)
39
-
40
- celement_name = @class_names_by_nstag[ celement.name ]
41
- referenced_element = @class_by_nstag[ celement.name ]
42
-
43
- if referenced_element.persisted then
44
- write_entity_ref_edge(element_name, celement_name)
45
- else
46
- write_internal_ref_edge(element_name, celement_name)
47
- end
48
- if include_mixins then
49
- write_mixin_ref_edge(element_name, celement_name)
50
- end
51
- end
52
- end
53
-
54
- def ignore_package(package)
55
- return true if @excluded_packages.member?(package)
56
- return false if @included_packages.nil?
57
- return true unless @included_packages.member?(package)
58
- return false
59
- end
60
-
61
- def write_yuml(base_filename, excluded_packages=[ ], included_packages=nil, include_mixins=false)
62
- filename = "#{ base_filename }.yuml"
63
-
64
- @excluded_packages = Set.new(excluded_packages)
65
- @included_packages = included_packages ? Set.new(included_packages) : nil
66
-
67
- @class_names_by_nstag = {} # NOTE -- this is used by yuml!!
68
- @class_by_nstag = {} # NOTE -- this is used by yuml!!
69
-
70
- @initialise_output = true
71
-
72
- File.open(filename, "w") do | out |
73
- @out = out
74
-
75
- @elements_map.each_value do |elements|
76
- elements.element_child.each do |element|
77
- generate_class_nodes(element, include_mixins)
78
- end
79
- end
80
-
81
- @elements_map.each_value do |elements|
82
- elements.element_child.each do |element|
83
- generate_edges(element, include_mixins)
84
- end
85
- end
86
- end
87
-
88
- return nil
89
- end
90
-
91
- def new_statement
92
- if @initialise_output then
93
- @initialise_output = false
94
- else
95
- @out << ",\n"
96
- end
97
- end
98
-
99
- def write_entity_node(class_name, kind)
100
- new_statement
101
- @out << "[#{ class_name }{bg:red}]"
102
- end
103
-
104
- def write_internal_node(class_name, kind)
105
- new_statement
106
- @out << "[#{ class_name }{bg:blue}]"
107
- end
108
-
109
- def write_mixin_node(class_name)
110
- new_statement
111
- @out << "[#{ class_name }Mixin]"
112
- end
113
-
114
- def write_entity_ref_edge(class_node, external_node)
115
- new_statement
116
- @out << "[#{ class_node }]->[#{ external_node }]"
117
- end
118
-
119
- def write_internal_ref_edge(class_node, internal_node)
120
- new_statement
121
- @out << "[#{ class_node }]->[#{ internal_node }]"
122
- end
123
-
124
- def write_mixin_ref_edge(class_node, mixin_node)
125
- new_statement
126
- @out << "[#{ mixin_node }Mixin]^[#{ class_node }]"
127
- end
128
- end
129
- end