activefacts 0.7.3 → 0.8.5
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/LICENSE +19 -0
- data/Manifest.txt +24 -2
- data/Rakefile +25 -3
- data/bin/afgen +1 -1
- data/bin/cql +13 -2
- data/css/offline.css +3 -0
- data/css/orm2.css +24 -0
- data/css/print.css +8 -0
- data/css/style-print.css +357 -0
- data/css/style.css +387 -0
- data/download.html +85 -0
- data/examples/CQL/Address.cql +3 -3
- data/examples/CQL/Blog.cql +13 -14
- data/examples/CQL/CompanyDirectorEmployee.cql +4 -4
- data/examples/CQL/Death.cql +3 -2
- data/examples/CQL/Genealogy.cql +13 -11
- data/examples/CQL/Marriage.cql +2 -2
- data/examples/CQL/Metamodel.cql +136 -93
- data/examples/CQL/MultiInheritance.cql +2 -2
- data/examples/CQL/OilSupply.cql +14 -10
- data/examples/CQL/Orienteering.cql +22 -19
- data/examples/CQL/PersonPlaysGame.cql +3 -2
- data/examples/CQL/SchoolActivities.cql +4 -2
- data/examples/CQL/SimplestUnary.cql +1 -1
- data/examples/CQL/SubtypePI.cql +6 -7
- data/examples/CQL/Warehousing.cql +16 -19
- data/examples/CQL/unit.cql +584 -0
- data/examples/index.html +276 -0
- data/examples/intro.html +497 -0
- data/examples/local.css +20 -0
- data/index.html +96 -0
- data/lib/activefacts/api/concept.rb +48 -46
- data/lib/activefacts/api/constellation.rb +43 -23
- data/lib/activefacts/api/entity.rb +2 -2
- data/lib/activefacts/api/instance.rb +6 -2
- data/lib/activefacts/api/instance_index.rb +5 -0
- data/lib/activefacts/api/value.rb +8 -2
- data/lib/activefacts/api/vocabulary.rb +15 -10
- data/lib/activefacts/cql/CQLParser.treetop +109 -88
- data/lib/activefacts/cql/Concepts.treetop +32 -10
- data/lib/activefacts/cql/Context.treetop +34 -0
- data/lib/activefacts/cql/Expressions.treetop +9 -9
- data/lib/activefacts/cql/FactTypes.treetop +30 -31
- data/lib/activefacts/cql/Language/English.treetop +50 -0
- data/lib/activefacts/cql/LexicalRules.treetop +2 -1
- data/lib/activefacts/cql/Terms.treetop +117 -0
- data/lib/activefacts/cql/ValueTypes.treetop +152 -0
- data/lib/activefacts/cql/compiler.rb +1718 -0
- data/lib/activefacts/cql/parser.rb +124 -57
- data/lib/activefacts/generate/absorption.rb +1 -1
- data/lib/activefacts/generate/cql.rb +111 -100
- data/lib/activefacts/generate/cql/html.rb +5 -5
- data/lib/activefacts/generate/oo.rb +3 -3
- data/lib/activefacts/generate/ordered.rb +51 -19
- data/lib/activefacts/generate/ruby.rb +10 -8
- data/lib/activefacts/generate/sql/mysql.rb +14 -10
- data/lib/activefacts/generate/sql/server.rb +29 -24
- data/lib/activefacts/input/cql.rb +9 -1264
- data/lib/activefacts/input/orm.rb +213 -200
- data/lib/activefacts/persistence/columns.rb +11 -10
- data/lib/activefacts/persistence/index.rb +15 -18
- data/lib/activefacts/persistence/reference.rb +17 -17
- data/lib/activefacts/persistence/tables.rb +50 -51
- data/lib/activefacts/version.rb +1 -1
- data/lib/activefacts/vocabulary/extensions.rb +79 -8
- data/lib/activefacts/vocabulary/metamodel.rb +183 -114
- data/spec/absorption_ruby_spec.rb +99 -0
- data/spec/absorption_spec.rb +3 -4
- data/spec/api/constellation.rb +1 -1
- data/spec/api/entity_type.rb +3 -1
- data/spec/api/instance.rb +4 -2
- data/spec/api/roles.rb +8 -6
- data/spec/api_spec.rb +1 -2
- data/spec/cql/context_spec.rb +71 -0
- data/spec/cql/samples_spec.rb +154 -0
- data/spec/cql/unit_spec.rb +375 -0
- data/spec/cql_cql_spec.rb +31 -21
- data/spec/cql_mysql_spec.rb +70 -0
- data/spec/cql_parse_spec.rb +15 -9
- data/spec/cql_ruby_spec.rb +27 -13
- data/spec/cql_sql_spec.rb +42 -16
- data/spec/cql_symbol_tables_spec.rb +2 -3
- data/spec/cqldump_spec.rb +7 -7
- data/spec/helpers/file_matcher.rb +39 -0
- data/spec/norma_cql_spec.rb +20 -12
- data/spec/norma_ruby_spec.rb +6 -3
- data/spec/norma_sql_spec.rb +6 -3
- data/spec/norma_tables_spec.rb +6 -4
- data/spec/spec_helper.rb +27 -8
- data/status.html +69 -0
- data/why.html +60 -0
- metadata +34 -11
- data/lib/activefacts/cql/DataTypes.treetop +0 -81
- data/spec/cql_unit_spec.rb +0 -330
data/css/style.css
ADDED
@@ -0,0 +1,387 @@
|
|
1
|
+
body
|
2
|
+
{
|
3
|
+
color : #000000;
|
4
|
+
background-color : #FFFFFF;
|
5
|
+
line-height : 1.5em;
|
6
|
+
font-family : Calibri, Verdana, sans-serif;
|
7
|
+
}
|
8
|
+
|
9
|
+
/* emphasis */
|
10
|
+
|
11
|
+
em,
|
12
|
+
blockquote
|
13
|
+
{
|
14
|
+
font-family : Cambria, Georgia, serif;
|
15
|
+
}
|
16
|
+
|
17
|
+
/* headings */
|
18
|
+
|
19
|
+
h1,
|
20
|
+
h2,
|
21
|
+
h3,
|
22
|
+
h4,
|
23
|
+
h5,
|
24
|
+
h6,
|
25
|
+
.title
|
26
|
+
{
|
27
|
+
font-weight : lighter;
|
28
|
+
font-family : Constantia, "Book Antiqua", "URW Bookman L", serif;
|
29
|
+
}
|
30
|
+
|
31
|
+
#lof h1,
|
32
|
+
#lof h2,
|
33
|
+
#lof h3,
|
34
|
+
#lof h4,
|
35
|
+
#lof h5,
|
36
|
+
#lof h6
|
37
|
+
{
|
38
|
+
margin-top : 1.25em;
|
39
|
+
}
|
40
|
+
|
41
|
+
#content h1,
|
42
|
+
#content h2,
|
43
|
+
#content h3,
|
44
|
+
#content h4,
|
45
|
+
#content h5,
|
46
|
+
#content h6
|
47
|
+
{
|
48
|
+
margin-top : 2.5em;
|
49
|
+
line-height : 1.25em;
|
50
|
+
}
|
51
|
+
|
52
|
+
#content h1
|
53
|
+
{
|
54
|
+
font-size : 2.0em;
|
55
|
+
}
|
56
|
+
|
57
|
+
#content h2
|
58
|
+
{
|
59
|
+
font-size : 1.8em;
|
60
|
+
}
|
61
|
+
|
62
|
+
#content h3
|
63
|
+
{
|
64
|
+
font-size : 1.6em;
|
65
|
+
}
|
66
|
+
|
67
|
+
#content h4
|
68
|
+
{
|
69
|
+
font-size : 1.4em;
|
70
|
+
}
|
71
|
+
|
72
|
+
#content h5
|
73
|
+
{
|
74
|
+
font-size : 1.2em;
|
75
|
+
}
|
76
|
+
|
77
|
+
#content h6
|
78
|
+
{
|
79
|
+
font-size : 1.0em;
|
80
|
+
}
|
81
|
+
|
82
|
+
/* tables */
|
83
|
+
|
84
|
+
table
|
85
|
+
{
|
86
|
+
border : none;
|
87
|
+
}
|
88
|
+
|
89
|
+
th,
|
90
|
+
td
|
91
|
+
{
|
92
|
+
padding : 1em;
|
93
|
+
border : 1px solid #C0C0C0;
|
94
|
+
vertical-align : top;
|
95
|
+
background-color : #FFFFFF;
|
96
|
+
}
|
97
|
+
|
98
|
+
th
|
99
|
+
{
|
100
|
+
background-color : #F5F5F5;
|
101
|
+
}
|
102
|
+
|
103
|
+
table
|
104
|
+
{
|
105
|
+
margin : auto;
|
106
|
+
}
|
107
|
+
|
108
|
+
/* document structure */
|
109
|
+
|
110
|
+
#header
|
111
|
+
{
|
112
|
+
margin-bottom : 5em;
|
113
|
+
text-align : center;
|
114
|
+
}
|
115
|
+
|
116
|
+
#abstract
|
117
|
+
{
|
118
|
+
margin-bottom : 5em;
|
119
|
+
}
|
120
|
+
|
121
|
+
#toc li
|
122
|
+
{
|
123
|
+
list-style-type : none;
|
124
|
+
}
|
125
|
+
|
126
|
+
#toc li ul
|
127
|
+
{
|
128
|
+
padding-bottom : 1em;
|
129
|
+
border-left : thick solid #F5F5F5;
|
130
|
+
_border-left : none; /* for IE6 */
|
131
|
+
}
|
132
|
+
|
133
|
+
#toc li ul:hover
|
134
|
+
{
|
135
|
+
border-color : #DCDCDC;
|
136
|
+
}
|
137
|
+
|
138
|
+
#toc > ul
|
139
|
+
{
|
140
|
+
padding-left : 1em;
|
141
|
+
}
|
142
|
+
|
143
|
+
#references
|
144
|
+
{
|
145
|
+
margin-top : 5em;
|
146
|
+
}
|
147
|
+
|
148
|
+
#footer
|
149
|
+
{
|
150
|
+
border-top : thick dotted #DCDCDC;
|
151
|
+
padding-top : 1em;
|
152
|
+
margin-top : 5em;
|
153
|
+
text-align : center;
|
154
|
+
}
|
155
|
+
|
156
|
+
/* document nodes */
|
157
|
+
|
158
|
+
.part > .title,
|
159
|
+
.chapter > .title
|
160
|
+
{
|
161
|
+
padding-bottom : 0.5em;
|
162
|
+
}
|
163
|
+
|
164
|
+
.part > .title > big,
|
165
|
+
.chapter > .title > big
|
166
|
+
{
|
167
|
+
display : block;
|
168
|
+
margin-top : 1.5em;
|
169
|
+
}
|
170
|
+
|
171
|
+
.part .title big,
|
172
|
+
.chapter .title big
|
173
|
+
{
|
174
|
+
_display : block; /* for IE6 */
|
175
|
+
_margin-top : 0.25em; /* for IE6 */
|
176
|
+
_margin-bottom : 0.75em; /* for IE6 */
|
177
|
+
}
|
178
|
+
|
179
|
+
.index
|
180
|
+
{
|
181
|
+
font-size: 0.9em;
|
182
|
+
line-height: 1.2em;
|
183
|
+
}
|
184
|
+
|
185
|
+
.index ul
|
186
|
+
{
|
187
|
+
margin: 4px;
|
188
|
+
font-size: 0.9em;
|
189
|
+
line-height: 1em;
|
190
|
+
}
|
191
|
+
|
192
|
+
.paragraph > .title,
|
193
|
+
.tip > .title,
|
194
|
+
.note > .title,
|
195
|
+
.caution > .title,
|
196
|
+
.warning > .title,
|
197
|
+
.important > .title,
|
198
|
+
.figure > .title,
|
199
|
+
.table > .title,
|
200
|
+
.example > .title,
|
201
|
+
.equation > .title,
|
202
|
+
.procedure > .title
|
203
|
+
{
|
204
|
+
font-size : large;
|
205
|
+
margin-top : 2em;
|
206
|
+
}
|
207
|
+
|
208
|
+
.paragraph .title,
|
209
|
+
.tip .title,
|
210
|
+
.note .title,
|
211
|
+
.caution .title,
|
212
|
+
.warning .title,
|
213
|
+
.important .title,
|
214
|
+
.figure .title,
|
215
|
+
.table .title,
|
216
|
+
.example .title,
|
217
|
+
.equation .title,
|
218
|
+
.procedure .title
|
219
|
+
{
|
220
|
+
_font-size : large; /* for IE6 */
|
221
|
+
_font-weight : bold; /* large is not bold in IE6 */
|
222
|
+
_margin-top : 2em; /* for IE6 */
|
223
|
+
}
|
224
|
+
|
225
|
+
.tip ,
|
226
|
+
.note ,
|
227
|
+
.caution ,
|
228
|
+
.warning ,
|
229
|
+
.important,
|
230
|
+
.figure ,
|
231
|
+
.table ,
|
232
|
+
.example ,
|
233
|
+
.equation ,
|
234
|
+
.procedure
|
235
|
+
{
|
236
|
+
margin : 3em;
|
237
|
+
}
|
238
|
+
|
239
|
+
.tip > .icon,
|
240
|
+
.note > .icon,
|
241
|
+
.caution > .icon,
|
242
|
+
.warning > .icon,
|
243
|
+
.important > .icon
|
244
|
+
{
|
245
|
+
float : left;
|
246
|
+
margin : 0 1em 1em 0; /* top right bottom left */
|
247
|
+
}
|
248
|
+
|
249
|
+
.tip .icon,
|
250
|
+
.note .icon,
|
251
|
+
.caution .icon,
|
252
|
+
.warning .icon,
|
253
|
+
.important .icon
|
254
|
+
{
|
255
|
+
_display : none; /* IE6 cannot display embedded images */
|
256
|
+
}
|
257
|
+
|
258
|
+
.figure > .title
|
259
|
+
{
|
260
|
+
text-align : center;
|
261
|
+
}
|
262
|
+
|
263
|
+
.figure .title
|
264
|
+
{
|
265
|
+
_text-align : center; /* for IE6 */
|
266
|
+
}
|
267
|
+
|
268
|
+
.figure > .content > img
|
269
|
+
{
|
270
|
+
display : block;
|
271
|
+
margin : auto;
|
272
|
+
}
|
273
|
+
|
274
|
+
.figure .content img
|
275
|
+
{
|
276
|
+
_display : block; /* for IE6 */
|
277
|
+
_margin : auto; /* for IE6 */
|
278
|
+
}
|
279
|
+
|
280
|
+
body
|
281
|
+
{
|
282
|
+
margin : auto;
|
283
|
+
padding : 0.5em;
|
284
|
+
XXmax-width : 40em;
|
285
|
+
max-width : 70%;
|
286
|
+
}
|
287
|
+
|
288
|
+
/* hyperlinks */
|
289
|
+
|
290
|
+
a
|
291
|
+
{
|
292
|
+
color : #0000FF;
|
293
|
+
text-decoration : none;
|
294
|
+
}
|
295
|
+
|
296
|
+
a:visited
|
297
|
+
{
|
298
|
+
color : #800080;
|
299
|
+
}
|
300
|
+
|
301
|
+
a:hover
|
302
|
+
{
|
303
|
+
color : #FF0000;
|
304
|
+
text-decoration : underline;
|
305
|
+
}
|
306
|
+
|
307
|
+
a:target
|
308
|
+
{
|
309
|
+
color : #FF0000;
|
310
|
+
text-decoration : underline;
|
311
|
+
}
|
312
|
+
|
313
|
+
a.toc:link,
|
314
|
+
a.toc:visited
|
315
|
+
{
|
316
|
+
text-decoration : none;
|
317
|
+
z-index : 1;
|
318
|
+
}
|
319
|
+
|
320
|
+
a img
|
321
|
+
{
|
322
|
+
border : none;
|
323
|
+
}
|
324
|
+
|
325
|
+
/* source code */
|
326
|
+
|
327
|
+
tt,
|
328
|
+
code,
|
329
|
+
pre
|
330
|
+
{
|
331
|
+
font-family : Consolas, "Lucida Console", monospace;
|
332
|
+
}
|
333
|
+
|
334
|
+
tt
|
335
|
+
{
|
336
|
+
font-weight : bold;
|
337
|
+
color : #A52A2A;
|
338
|
+
background-color : #FFFAF0;
|
339
|
+
}
|
340
|
+
|
341
|
+
/* output of syntax colorizer */
|
342
|
+
.code
|
343
|
+
{
|
344
|
+
background-color : #FFFFF0;
|
345
|
+
}
|
346
|
+
|
347
|
+
pre
|
348
|
+
{
|
349
|
+
line-height : normal;
|
350
|
+
border : 1px dashed #C0C0C0;
|
351
|
+
background-color : #F5FFDF;
|
352
|
+
padding : 1em;
|
353
|
+
overflow : auto;
|
354
|
+
cursor : text;
|
355
|
+
}
|
356
|
+
|
357
|
+
/*
|
358
|
+
pre:hover
|
359
|
+
{
|
360
|
+
border : none;
|
361
|
+
position : fixed;
|
362
|
+
z-index : 1;
|
363
|
+
margin : 0;
|
364
|
+
top : 0;
|
365
|
+
left : 0;
|
366
|
+
right : 0;
|
367
|
+
bottom : 0;
|
368
|
+
overflow : auto;
|
369
|
+
cursor : text;
|
370
|
+
}
|
371
|
+
*/
|
372
|
+
|
373
|
+
/* emphasis */
|
374
|
+
|
375
|
+
blockquote
|
376
|
+
{
|
377
|
+
margin : 1em;
|
378
|
+
border : 5px dotted #C0C0C0;
|
379
|
+
padding : 1em;
|
380
|
+
color : #444;
|
381
|
+
}
|
382
|
+
|
383
|
+
hr
|
384
|
+
{
|
385
|
+
color : #FF0000; /* for IE6 */
|
386
|
+
background-color : #FF0000; /* for Firefox */
|
387
|
+
}
|
data/download.html
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
<!--#include virtual="/header.html" -->
|
2
|
+
<!--#include virtual="navbar.html" -->
|
3
|
+
|
4
|
+
<link rel="stylesheet" href="css/offline.css" media="screen" type="text/css" />
|
5
|
+
|
6
|
+
<div id="sidebar"></div>
|
7
|
+
|
8
|
+
<div id="top" class="content">
|
9
|
+
|
10
|
+
<a name="download"></a>
|
11
|
+
<h2 class="title">
|
12
|
+
Download
|
13
|
+
</h2>
|
14
|
+
|
15
|
+
<p>
|
16
|
+
ActiveFacts is <a href="http://rubygems.rubyforge.org/">packaged</a>
|
17
|
+
as a <a href="http://www.ruby-lang.org/">Ruby</a> <a href="http://gems.rubyforge.org/">GEM</a>.
|
18
|
+
You should install Ruby, and say
|
19
|
+
</p>
|
20
|
+
|
21
|
+
<pre>
|
22
|
+
sudo gem install activefacts
|
23
|
+
</pre>
|
24
|
+
|
25
|
+
<p>
|
26
|
+
After installing, you can read the Ruby API documentation by visiting
|
27
|
+
<a href="http://localhost:8808/">http://localhost:8808/</a> in your browser after starting
|
28
|
+
</p>
|
29
|
+
<pre>
|
30
|
+
gem server
|
31
|
+
</pre>
|
32
|
+
|
33
|
+
<p>
|
34
|
+
CQL Examples are provided in a directory under your gem directory, and you can generate
|
35
|
+
code from them using commands like the following (change the path to your gem repository):
|
36
|
+
</p>
|
37
|
+
|
38
|
+
<pre>
|
39
|
+
afgen --ruby /opt/local/lib/ruby/gems/1.8/gems/activefacts-0.6.0/examples/CQL/OilSupply.cql
|
40
|
+
afgen --sql/server /opt/local/lib/ruby/gems/1.8/gems/activefacts-0.6.0/examples/CQL/Warehousing.cql
|
41
|
+
</pre>
|
42
|
+
|
43
|
+
<p>
|
44
|
+
<em>afgen</em> also reads <em>.orm</em> files from <a href="http://ormfoundation.org/files">NORMA</a>.
|
45
|
+
</p>
|
46
|
+
|
47
|
+
<h3>Source Code Repository</h3>
|
48
|
+
<p>
|
49
|
+
The <a href="http://subversion.tigris.org/">Subversion</a> repository is also available
|
50
|
+
at <a href="http://rubyforge.org/projects/activefacts/">RubyForge</a>.
|
51
|
+
If you're on Windows and don't have Subversion installed, you can also
|
52
|
+
get a client like Tortoise or cygwin. If you use a command-line <em>svn</em> client, say:
|
53
|
+
</p>
|
54
|
+
<pre>
|
55
|
+
svn checkout http://activefacts.rubyforge.org/svn/
|
56
|
+
|
57
|
+
or
|
58
|
+
|
59
|
+
svn checkout svn://rubyforge.org/var/svn/activefacts
|
60
|
+
</pre>
|
61
|
+
|
62
|
+
<h3>Object Role Modeling</h3>
|
63
|
+
<p>
|
64
|
+
If you want to draw your own <a href="www.orm.net">Object Role Modeling</a>
|
65
|
+
diagrams and have a copy of Windows Visual Studio (pro only, not Express),
|
66
|
+
you can freely download and install the <a href="http://www.ormfoundation.com/files/">Neumont ORM Architect</a>.
|
67
|
+
The example models are available in the correct format from the SVN repository.
|
68
|
+
The ActiveFacts generator <em>afgen</em> can process ORM files as easily as
|
69
|
+
CQL files, though a little slower due to the volume of XML to be parsed.
|
70
|
+
</p>
|
71
|
+
|
72
|
+
<a name="information"></a>
|
73
|
+
<h3>More information and discussion</h3>
|
74
|
+
|
75
|
+
<p>
|
76
|
+
Status messages go to the Yahoo
|
77
|
+
<a href="http://tech.groups.yahoo.com/group/information_modeling">information_modeling</a>
|
78
|
+
group, which is also available as an
|
79
|
+
<a href="news:gmane.comp.programming.modeling.information">NNTP feed on Gmane</a>.
|
80
|
+
Subscribe today and share your thoughts!
|
81
|
+
</p>
|
82
|
+
|
83
|
+
</div>
|
84
|
+
|
85
|
+
<!--#include virtual="/footer.html" -->
|