ftr_ruby 0.1.1 → 0.1.2
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.
- checksums.yaml +4 -4
- data/doc/CHANGELOG_md.html +526 -0
- data/doc/FtrRuby/DCAT_Record.html +1324 -0
- data/doc/FtrRuby/Error.html +606 -0
- data/doc/FtrRuby/FDPIndex.html +966 -0
- data/doc/FtrRuby/Output.html +1355 -0
- data/doc/FtrRuby/TestInfra.html +713 -0
- data/doc/FtrRuby/Tests.html +690 -0
- data/doc/FtrRuby.html +588 -0
- data/doc/Gemfile.html +548 -0
- data/doc/Gemfile_lock.html +1074 -0
- data/doc/LICENSE_txt.html +527 -0
- data/doc/OpenAPI.html +1103 -0
- data/doc/README_md.html +716 -0
- data/doc/Rakefile.html +529 -0
- data/doc/bin/setup.html +523 -0
- data/doc/created.rid +19 -0
- data/doc/css/rdoc.css +1955 -0
- data/doc/index.html +518 -0
- data/doc/js/aliki.js +511 -0
- data/doc/js/bash_highlighter.js +167 -0
- data/doc/js/c_highlighter.js +299 -0
- data/doc/js/search_controller.js +129 -0
- data/doc/js/search_data.js +1 -0
- data/doc/js/search_navigation.js +105 -0
- data/doc/js/search_ranker.js +239 -0
- data/doc/js/theme-toggle.js +112 -0
- data/doc/sig/ftr_ruby_rbs.html +524 -0
- data/lib/ftr_ruby/version.rb +1 -1
- data/lib/ftr_ruby.rb +4 -0
- metadata +28 -1
data/doc/README_md.html
ADDED
|
@@ -0,0 +1,716 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
+
|
|
8
|
+
<title>README - RDoc Documentation</title>
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<meta name="keywords" content="ruby,documentation,README">
|
|
12
|
+
<meta
|
|
13
|
+
name="description"
|
|
14
|
+
content="README: TestResult` with provenance) The library uses the **TripleEasy** mixin for easy RDF triple creation and produces graphs compatible with DCAT, DQV, PR"
|
|
15
|
+
>
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
<!-- Open Graph / Facebook -->
|
|
21
|
+
<meta property="og:type" content="website">
|
|
22
|
+
<meta property="og:title" content="README - RDoc Documentation">
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
<meta property="og:description" content="TestResult` with provenance) The library uses the **TripleEasy** mixin for easy RDF triple creation and produces graphs compatible with DCAT, DQV, PR">
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<!-- Twitter -->
|
|
33
|
+
<meta name="twitter:card" content="summary">
|
|
34
|
+
<meta name="twitter:title" content="README - RDoc Documentation">
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
<meta name="twitter:description" content="TestResult` with provenance) The library uses the **TripleEasy** mixin for easy RDF triple creation and produces graphs compatible with DCAT, DQV, PR">
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<script type="text/javascript">
|
|
43
|
+
var rdoc_rel_prefix = "./";
|
|
44
|
+
var index_rel_prefix = "./";
|
|
45
|
+
</script>
|
|
46
|
+
|
|
47
|
+
<script
|
|
48
|
+
src="./js/theme-toggle.js?v=7.2.0"
|
|
49
|
+
></script>
|
|
50
|
+
|
|
51
|
+
<script
|
|
52
|
+
src="./js/search_navigation.js?v=7.2.0"
|
|
53
|
+
defer
|
|
54
|
+
></script>
|
|
55
|
+
|
|
56
|
+
<script
|
|
57
|
+
src="./js/search_data.js?v=7.2.0"
|
|
58
|
+
defer
|
|
59
|
+
></script>
|
|
60
|
+
|
|
61
|
+
<script
|
|
62
|
+
src="./js/search_ranker.js?v=7.2.0"
|
|
63
|
+
defer
|
|
64
|
+
></script>
|
|
65
|
+
|
|
66
|
+
<script
|
|
67
|
+
src="./js/search_controller.js?v=7.2.0"
|
|
68
|
+
defer
|
|
69
|
+
></script>
|
|
70
|
+
|
|
71
|
+
<script
|
|
72
|
+
src="./js/c_highlighter.js?v=7.2.0"
|
|
73
|
+
defer
|
|
74
|
+
></script>
|
|
75
|
+
|
|
76
|
+
<script
|
|
77
|
+
src="./js/bash_highlighter.js?v=7.2.0"
|
|
78
|
+
defer
|
|
79
|
+
></script>
|
|
80
|
+
|
|
81
|
+
<script
|
|
82
|
+
src="./js/aliki.js?v=7.2.0"
|
|
83
|
+
defer
|
|
84
|
+
></script>
|
|
85
|
+
|
|
86
|
+
<link
|
|
87
|
+
href="./css/rdoc.css?v=7.2.0"
|
|
88
|
+
rel="stylesheet"
|
|
89
|
+
>
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
<body role="document" class="file has-toc">
|
|
95
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
|
96
|
+
<!-- Chevron (right arrow) - used for expand/collapse -->
|
|
97
|
+
<symbol
|
|
98
|
+
id="icon-chevron"
|
|
99
|
+
viewBox="0 0 24 24"
|
|
100
|
+
fill="none"
|
|
101
|
+
stroke="currentColor"
|
|
102
|
+
stroke-width="2"
|
|
103
|
+
stroke-linecap="round"
|
|
104
|
+
stroke-linejoin="round"
|
|
105
|
+
>
|
|
106
|
+
<polyline points="9 18 15 12 9 6"></polyline>
|
|
107
|
+
</symbol>
|
|
108
|
+
|
|
109
|
+
<!-- File/Document - Pages section -->
|
|
110
|
+
<symbol
|
|
111
|
+
id="icon-file"
|
|
112
|
+
viewBox="0 0 24 24"
|
|
113
|
+
fill="none"
|
|
114
|
+
stroke="currentColor"
|
|
115
|
+
stroke-width="2"
|
|
116
|
+
stroke-linecap="round"
|
|
117
|
+
stroke-linejoin="round"
|
|
118
|
+
>
|
|
119
|
+
<path
|
|
120
|
+
d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"
|
|
121
|
+
></path>
|
|
122
|
+
|
|
123
|
+
<polyline points="14 2 14 8 20 8"></polyline>
|
|
124
|
+
</symbol>
|
|
125
|
+
|
|
126
|
+
<!-- Layers/Stack - Classes and Modules section -->
|
|
127
|
+
<symbol
|
|
128
|
+
id="icon-layers"
|
|
129
|
+
viewBox="0 0 24 24"
|
|
130
|
+
fill="none"
|
|
131
|
+
stroke="currentColor"
|
|
132
|
+
stroke-width="2"
|
|
133
|
+
stroke-linecap="round"
|
|
134
|
+
stroke-linejoin="round"
|
|
135
|
+
>
|
|
136
|
+
<polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
|
|
137
|
+
<polyline points="2 17 12 22 22 17"></polyline>
|
|
138
|
+
<polyline points="2 12 12 17 22 12"></polyline>
|
|
139
|
+
</symbol>
|
|
140
|
+
|
|
141
|
+
<!-- Curly braces with C - Class Methods section -->
|
|
142
|
+
<symbol
|
|
143
|
+
id="icon-class-methods"
|
|
144
|
+
viewBox="0 0 24 24"
|
|
145
|
+
fill="none"
|
|
146
|
+
stroke="currentColor"
|
|
147
|
+
stroke-width="2"
|
|
148
|
+
stroke-linecap="round"
|
|
149
|
+
stroke-linejoin="round"
|
|
150
|
+
>
|
|
151
|
+
<path d="M6 3C3.5 3 2 4.5 2 7v3c0 1.5-1 2-1 2s1 .5 1 2v5c0 2.5 1.5 4 4 4"></path>
|
|
152
|
+
<path d="M18 3c2.5 0 4 1.5 4 4v3c0 1.5 1 2 1 2s-1 .5-1 2v5c0 2.5-1.5 4-4 4"></path>
|
|
153
|
+
|
|
154
|
+
<text
|
|
155
|
+
x="12"
|
|
156
|
+
y="17"
|
|
157
|
+
text-anchor="middle"
|
|
158
|
+
font-size="13"
|
|
159
|
+
font-weight="bold"
|
|
160
|
+
fill="currentColor"
|
|
161
|
+
stroke="none"
|
|
162
|
+
>
|
|
163
|
+
C
|
|
164
|
+
</text>
|
|
165
|
+
</symbol>
|
|
166
|
+
|
|
167
|
+
<!-- Curly braces with I - Instance Methods section -->
|
|
168
|
+
<symbol
|
|
169
|
+
id="icon-instance-methods"
|
|
170
|
+
viewBox="0 0 24 24"
|
|
171
|
+
fill="none"
|
|
172
|
+
stroke="currentColor"
|
|
173
|
+
stroke-width="2"
|
|
174
|
+
stroke-linecap="round"
|
|
175
|
+
stroke-linejoin="round"
|
|
176
|
+
>
|
|
177
|
+
<path d="M6 3C3.5 3 2 4.5 2 7v3c0 1.5-1 2-1 2s1 .5 1 2v5c0 2.5 1.5 4 4 4"></path>
|
|
178
|
+
<path d="M18 3c2.5 0 4 1.5 4 4v3c0 1.5 1 2 1 2s-1 .5-1 2v5c0 2.5-1.5 4-4 4"></path>
|
|
179
|
+
|
|
180
|
+
<text
|
|
181
|
+
x="12"
|
|
182
|
+
y="17"
|
|
183
|
+
text-anchor="middle"
|
|
184
|
+
font-size="13"
|
|
185
|
+
font-weight="bold"
|
|
186
|
+
fill="currentColor"
|
|
187
|
+
stroke="none"
|
|
188
|
+
>
|
|
189
|
+
I
|
|
190
|
+
</text>
|
|
191
|
+
</symbol>
|
|
192
|
+
|
|
193
|
+
<!-- Double chevrons up - Ancestors section -->
|
|
194
|
+
<symbol
|
|
195
|
+
id="icon-ancestors"
|
|
196
|
+
viewBox="0 0 24 24"
|
|
197
|
+
fill="none"
|
|
198
|
+
stroke="currentColor"
|
|
199
|
+
stroke-width="2"
|
|
200
|
+
stroke-linecap="round"
|
|
201
|
+
stroke-linejoin="round"
|
|
202
|
+
>
|
|
203
|
+
<polyline points="17 11 12 6 7 11"></polyline>
|
|
204
|
+
<polyline points="17 18 12 13 7 18"></polyline>
|
|
205
|
+
</symbol>
|
|
206
|
+
|
|
207
|
+
<!-- User with plus - Included Modules section -->
|
|
208
|
+
<symbol
|
|
209
|
+
id="icon-includes"
|
|
210
|
+
viewBox="0 0 24 24"
|
|
211
|
+
fill="none"
|
|
212
|
+
stroke="currentColor"
|
|
213
|
+
stroke-width="2"
|
|
214
|
+
stroke-linecap="round"
|
|
215
|
+
stroke-linejoin="round"
|
|
216
|
+
>
|
|
217
|
+
<path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
|
|
218
|
+
<circle cx="8.5" cy="7" r="4"></circle>
|
|
219
|
+
|
|
220
|
+
<line
|
|
221
|
+
x1="20"
|
|
222
|
+
y1="8"
|
|
223
|
+
x2="20"
|
|
224
|
+
y2="14"
|
|
225
|
+
></line>
|
|
226
|
+
|
|
227
|
+
<line
|
|
228
|
+
x1="23"
|
|
229
|
+
y1="11"
|
|
230
|
+
x2="17"
|
|
231
|
+
y2="11"
|
|
232
|
+
></line>
|
|
233
|
+
</symbol>
|
|
234
|
+
|
|
235
|
+
<!-- User with check - Extended Modules section -->
|
|
236
|
+
<symbol
|
|
237
|
+
id="icon-extends"
|
|
238
|
+
viewBox="0 0 24 24"
|
|
239
|
+
fill="none"
|
|
240
|
+
stroke="currentColor"
|
|
241
|
+
stroke-width="2"
|
|
242
|
+
stroke-linecap="round"
|
|
243
|
+
stroke-linejoin="round"
|
|
244
|
+
>
|
|
245
|
+
<path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
|
|
246
|
+
<circle cx="8.5" cy="7" r="4"></circle>
|
|
247
|
+
<polyline points="17 11 19 13 23 9"></polyline>
|
|
248
|
+
</symbol>
|
|
249
|
+
|
|
250
|
+
<!-- List - Sections section -->
|
|
251
|
+
<symbol
|
|
252
|
+
id="icon-list"
|
|
253
|
+
viewBox="0 0 24 24"
|
|
254
|
+
fill="none"
|
|
255
|
+
stroke="currentColor"
|
|
256
|
+
stroke-width="2"
|
|
257
|
+
stroke-linecap="round"
|
|
258
|
+
stroke-linejoin="round"
|
|
259
|
+
>
|
|
260
|
+
<line
|
|
261
|
+
x1="8"
|
|
262
|
+
y1="6"
|
|
263
|
+
x2="21"
|
|
264
|
+
y2="6"
|
|
265
|
+
></line>
|
|
266
|
+
|
|
267
|
+
<line
|
|
268
|
+
x1="8"
|
|
269
|
+
y1="12"
|
|
270
|
+
x2="21"
|
|
271
|
+
y2="12"
|
|
272
|
+
></line>
|
|
273
|
+
|
|
274
|
+
<line
|
|
275
|
+
x1="8"
|
|
276
|
+
y1="18"
|
|
277
|
+
x2="21"
|
|
278
|
+
y2="18"
|
|
279
|
+
></line>
|
|
280
|
+
|
|
281
|
+
<line
|
|
282
|
+
x1="3"
|
|
283
|
+
y1="6"
|
|
284
|
+
x2="3.01"
|
|
285
|
+
y2="6"
|
|
286
|
+
></line>
|
|
287
|
+
|
|
288
|
+
<line
|
|
289
|
+
x1="3"
|
|
290
|
+
y1="12"
|
|
291
|
+
x2="3.01"
|
|
292
|
+
y2="12"
|
|
293
|
+
></line>
|
|
294
|
+
|
|
295
|
+
<line
|
|
296
|
+
x1="3"
|
|
297
|
+
y1="18"
|
|
298
|
+
x2="3.01"
|
|
299
|
+
y2="18"
|
|
300
|
+
></line>
|
|
301
|
+
</symbol>
|
|
302
|
+
</svg>
|
|
303
|
+
|
|
304
|
+
<header class="top-navbar">
|
|
305
|
+
<a href="./index.html" class="navbar-brand">
|
|
306
|
+
RDoc Documentation
|
|
307
|
+
</a>
|
|
308
|
+
|
|
309
|
+
<!-- Desktop search bar -->
|
|
310
|
+
<div class="navbar-search navbar-search-desktop" role="search">
|
|
311
|
+
<form action="#" method="get" accept-charset="utf-8">
|
|
312
|
+
<input id="search-field" role="combobox" aria-label="Search"
|
|
313
|
+
aria-autocomplete="list" aria-controls="search-results-desktop"
|
|
314
|
+
type="text" name="search" placeholder="Search (/) for a class, method..."
|
|
315
|
+
spellcheck="false" autocomplete="off"
|
|
316
|
+
title="Type to search, Up and Down to navigate, Enter to load">
|
|
317
|
+
<ul id="search-results-desktop" aria-label="Search Results"
|
|
318
|
+
aria-busy="false" aria-expanded="false"
|
|
319
|
+
aria-atomic="false" class="initially-hidden search-results"></ul>
|
|
320
|
+
</form>
|
|
321
|
+
</div>
|
|
322
|
+
|
|
323
|
+
<!-- Mobile search icon button -->
|
|
324
|
+
<button id="search-toggle" class="navbar-search-mobile" aria-label="Open search" type="button">
|
|
325
|
+
<span aria-hidden="true">🔍</span>
|
|
326
|
+
</button>
|
|
327
|
+
|
|
328
|
+
<!-- Theme toggle button -->
|
|
329
|
+
<button id="theme-toggle" class="theme-toggle" aria-label="Switch to dark mode" type="button">
|
|
330
|
+
<span class="theme-toggle-icon" aria-hidden="true">🌙</span>
|
|
331
|
+
</button>
|
|
332
|
+
</header>
|
|
333
|
+
|
|
334
|
+
<!-- Search Modal (Mobile) -->
|
|
335
|
+
<div id="search-modal" class="search-modal" hidden aria-modal="true" role="dialog" aria-label="Search">
|
|
336
|
+
<div class="search-modal-backdrop"></div>
|
|
337
|
+
<div class="search-modal-content">
|
|
338
|
+
<div class="search-modal-header">
|
|
339
|
+
<form class="search-modal-form" action="#" method="get" accept-charset="utf-8">
|
|
340
|
+
<span class="search-modal-icon" aria-hidden="true">🔍</span>
|
|
341
|
+
<input id="search-field-mobile" role="combobox" aria-label="Search"
|
|
342
|
+
aria-autocomplete="list" aria-controls="search-results-mobile"
|
|
343
|
+
type="text" name="search" placeholder="Search documentation"
|
|
344
|
+
spellcheck="false" autocomplete="off">
|
|
345
|
+
<button type="button" class="search-modal-close" aria-label="Close search" id="search-modal-close">
|
|
346
|
+
<span aria-hidden="true">esc</span>
|
|
347
|
+
</button>
|
|
348
|
+
</form>
|
|
349
|
+
</div>
|
|
350
|
+
<div class="search-modal-body">
|
|
351
|
+
<ul id="search-results-mobile" aria-label="Search Results"
|
|
352
|
+
aria-busy="false" aria-expanded="false"
|
|
353
|
+
aria-atomic="false" class="search-results search-modal-results initially-hidden"></ul>
|
|
354
|
+
<div class="search-modal-empty">
|
|
355
|
+
<p>No recent searches</p>
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
|
|
361
|
+
<div id="navigation-toggle" role="button" tabindex="0" aria-label="Toggle sidebar" aria-expanded="true" aria-controls="navigation">
|
|
362
|
+
<span aria-hidden="true">☰</span>
|
|
363
|
+
</div>
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
<nav id="navigation" role="navigation" hidden>
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
<div id="fileindex-section" class="nav-section">
|
|
375
|
+
<details class="nav-section-collapsible" open>
|
|
376
|
+
<summary class="nav-section-header">
|
|
377
|
+
<span class="nav-section-icon">
|
|
378
|
+
<svg>
|
|
379
|
+
<use href="#icon-file"></use>
|
|
380
|
+
</svg>
|
|
381
|
+
</span>
|
|
382
|
+
|
|
383
|
+
<span class="nav-section-title">Pages</span>
|
|
384
|
+
|
|
385
|
+
<span class="nav-section-chevron">
|
|
386
|
+
<svg>
|
|
387
|
+
<use href="#icon-chevron"></use>
|
|
388
|
+
</svg>
|
|
389
|
+
</span>
|
|
390
|
+
</summary>
|
|
391
|
+
|
|
392
|
+
<ul class="nav-list">
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
<li>
|
|
400
|
+
<a href="./CHANGELOG_md.html">
|
|
401
|
+
CHANGELOG
|
|
402
|
+
</a>
|
|
403
|
+
</li>
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
<li>
|
|
409
|
+
<a href="./Gemfile.html">
|
|
410
|
+
Gemfile
|
|
411
|
+
</a>
|
|
412
|
+
</li>
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
<li>
|
|
418
|
+
<a href="./Gemfile_lock.html">
|
|
419
|
+
Gemfile.lock
|
|
420
|
+
</a>
|
|
421
|
+
</li>
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
<li>
|
|
427
|
+
<a href="./LICENSE_txt.html">
|
|
428
|
+
LICENSE
|
|
429
|
+
</a>
|
|
430
|
+
</li>
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
<li>
|
|
436
|
+
<a href="./README_md.html">
|
|
437
|
+
README
|
|
438
|
+
</a>
|
|
439
|
+
</li>
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
<li>
|
|
445
|
+
<a href="./Rakefile.html">
|
|
446
|
+
Rakefile
|
|
447
|
+
</a>
|
|
448
|
+
</li>
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
<li>
|
|
454
|
+
<a href="./bin/setup.html">
|
|
455
|
+
setup
|
|
456
|
+
</a>
|
|
457
|
+
</li>
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
<li>
|
|
463
|
+
<a href="./sig/ftr_ruby_rbs.html">
|
|
464
|
+
ftr_ruby.rbs
|
|
465
|
+
</a>
|
|
466
|
+
</li>
|
|
467
|
+
|
|
468
|
+
</ul>
|
|
469
|
+
</details>
|
|
470
|
+
</div>
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
<div id="classindex-section" class="nav-section">
|
|
474
|
+
<details class="nav-section-collapsible" open>
|
|
475
|
+
<summary class="nav-section-header">
|
|
476
|
+
<span class="nav-section-icon">
|
|
477
|
+
<svg><use href="#icon-layers"></use></svg>
|
|
478
|
+
</span>
|
|
479
|
+
<span class="nav-section-title">Classes and Modules</span>
|
|
480
|
+
<span class="nav-section-chevron">
|
|
481
|
+
<svg><use href="#icon-chevron"></use></svg>
|
|
482
|
+
</span>
|
|
483
|
+
</summary>
|
|
484
|
+
|
|
485
|
+
<ul class="link-list nav-list"><li><details><summary><code><a href="./FtrRuby.html">FtrRuby</a></code></summary><ul class="link-list nav-list"><li><code><a href="./FtrRuby/DCAT_Record.html">DCAT_Record</a></code></li><li><code><a href="./FtrRuby/Error.html">Error</a></code></li><li><code><a href="./FtrRuby/FDPIndex.html">FDPIndex</a></code></li><li><code><a href="./FtrRuby/Output.html">Output</a></code></li><li><code><a href="./FtrRuby/TestInfra.html">TestInfra</a></code></li><li><code><a href="./FtrRuby/Tests.html">Tests</a></code></li></ul></details></li><li><code><a href="./OpenAPI.html">OpenAPI</a></code></li></ul>
|
|
486
|
+
</details>
|
|
487
|
+
</div>
|
|
488
|
+
|
|
489
|
+
</nav>
|
|
490
|
+
|
|
491
|
+
<main role="main" aria-label="Page README.md">
|
|
492
|
+
|
|
493
|
+
<span id="label-FtrRuby" class="legacy-anchor"></span>
|
|
494
|
+
<h1 id="ftrruby"><a href="#ftrruby"><a href="FtrRuby.html"><code>FtrRuby</code></a></a></h1>
|
|
495
|
+
|
|
496
|
+
<p><strong>Ruby library for generating DCAT-compliant metadata and FAIR test outputs following the FTR Vocabulary</strong></p>
|
|
497
|
+
|
|
498
|
+
<p><a href="FtrRuby.html"><code>FtrRuby</code></a> provides two main classes for working with FAIR Tests in Ruby:</p>
|
|
499
|
+
<ul><li>
|
|
500
|
+
<p><code>DCAT_Record</code> – Creates rich DCAT metadata describing a FAIR Test (as a <code>dcat:DataService</code> + <code>ftr:Test</code>)</p>
|
|
501
|
+
</li><li>
|
|
502
|
+
<p><code>Output</code> – Generates a standardized FAIR test execution result (as a <code>ftr:TestResult</code> with provenance)</p>
|
|
503
|
+
</li></ul>
|
|
504
|
+
|
|
505
|
+
<p>The library uses the <strong>TripleEasy</strong> mixin for easy RDF triple creation and produces graphs compatible with DCAT, DQV, PROV, and the <strong>FAIR Test Registry (FTR)</strong> vocabulary.</p>
|
|
506
|
+
<hr>
|
|
507
|
+
|
|
508
|
+
<span id="label-Features" class="legacy-anchor"></span>
|
|
509
|
+
<h2 id="features"><a href="#features">Features</a></h2>
|
|
510
|
+
<ul><li>
|
|
511
|
+
<p>Full DCAT 2 metadata generation for FAIR Tests</p>
|
|
512
|
+
</li><li>
|
|
513
|
+
<p>Standardized test result output with provenance (<code>prov:wasGeneratedBy</code>, <code>ftr:TestResult</code>, etc.)</p>
|
|
514
|
+
</li><li>
|
|
515
|
+
<p>Automatic URL construction for test endpoints and identifiers</p>
|
|
516
|
+
</li><li>
|
|
517
|
+
<p>Support for contact points, indicators, metrics, themes, and guidance</p>
|
|
518
|
+
</li><li>
|
|
519
|
+
<p>JSON-LD output for easy consumption by registries and portals</p>
|
|
520
|
+
</li><li>
|
|
521
|
+
<p>Ready for use in FAIR assessment platforms, OSTrails, and EOSC services</p>
|
|
522
|
+
</li></ul>
|
|
523
|
+
<hr>
|
|
524
|
+
|
|
525
|
+
<span id="label-Installation" class="legacy-anchor"></span>
|
|
526
|
+
<h2 id="installation"><a href="#installation">Installation</a></h2>
|
|
527
|
+
|
|
528
|
+
<p>If published as a gem:</p>
|
|
529
|
+
|
|
530
|
+
<pre class="ruby"><span class="ruby-identifier">gem</span> <span class="ruby-string">'ftr_ruby'</span>
|
|
531
|
+
</pre>
|
|
532
|
+
|
|
533
|
+
<p>Or install manually:</p>
|
|
534
|
+
|
|
535
|
+
<pre class="bash">gem install ftr_ruby</pre>
|
|
536
|
+
|
|
537
|
+
<p>For local development:</p>
|
|
538
|
+
|
|
539
|
+
<pre class="ruby"><span class="ruby-identifier">require_relative</span> <span class="ruby-string">'lib/ftr_ruby'</span>
|
|
540
|
+
</pre>
|
|
541
|
+
<hr>
|
|
542
|
+
|
|
543
|
+
<span id="label-Usage" class="legacy-anchor"></span>
|
|
544
|
+
<h2 id="usage"><a href="#usage">Usage</a></h2>
|
|
545
|
+
|
|
546
|
+
<span id="label-1.+Documenting+a+FAIR+Test+-28DCAT_Record-29" class="legacy-anchor"></span>
|
|
547
|
+
<h3 id="1-documenting-a-fair-test-dcatrecord"><a href="#1-documenting-a-fair-test-dcatrecord">1. Documenting a FAIR Test (<code>DCAT_Record</code>)</a></h3>
|
|
548
|
+
|
|
549
|
+
<pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'ftr_ruby'</span>
|
|
550
|
+
|
|
551
|
+
<span class="ruby-identifier">meta</span> = {
|
|
552
|
+
<span class="ruby-value">testid:</span> <span class="ruby-string">"ftr-rda-f1-01m"</span>,
|
|
553
|
+
<span class="ruby-value">testname:</span> <span class="ruby-string">"FAIR Test F1-01M: Globally Unique Persistent Identifier"</span>,
|
|
554
|
+
<span class="ruby-value">description:</span> <span class="ruby-string">"This test checks whether a digital object is identified by a globally unique persistent identifier."</span>,
|
|
555
|
+
<span class="ruby-value">keywords:</span> [<span class="ruby-string">"FAIR"</span>, <span class="ruby-string">"F1"</span>, <span class="ruby-string">"persistent identifier"</span>, <span class="ruby-string">"PID"</span>],
|
|
556
|
+
<span class="ruby-value">creator:</span> <span class="ruby-string">"https://orcid.org/0000-0001-2345-6789"</span>,
|
|
557
|
+
<span class="ruby-value">indicators:</span> [<span class="ruby-string">"https://w3id.org/ftr/indicator/F1-01M"</span>],
|
|
558
|
+
<span class="ruby-value">metric:</span> <span class="ruby-string">"https://w3id.org/ftr/metric/F1-01M"</span>,
|
|
559
|
+
<span class="ruby-value">license:</span> <span class="ruby-string">"https://creativecommons.org/licenses/by/4.0/"</span>,
|
|
560
|
+
<span class="ruby-value">testversion:</span> <span class="ruby-string">"1.0.0"</span>,
|
|
561
|
+
<span class="ruby-value">protocol:</span> <span class="ruby-string">"https"</span>,
|
|
562
|
+
<span class="ruby-value">host:</span> <span class="ruby-string">"tests.ostrails.eu"</span>,
|
|
563
|
+
<span class="ruby-value">basePath:</span> <span class="ruby-string">"api"</span>,
|
|
564
|
+
<span class="ruby-value">individuals:</span> [{ <span class="ruby-string">"name"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"Mark Wilkinson"</span>, <span class="ruby-string">"email"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"mark.wilkinson@upm.es"</span> }],
|
|
565
|
+
<span class="ruby-value">organizations:</span> [{ <span class="ruby-string">"name"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"CBGP"</span>, <span class="ruby-string">"url"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"https://www.cbgp.upm.es"</span> }]
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
<span class="ruby-identifier">record</span> = <span class="ruby-constant">FtrRuby</span><span class="ruby-operator">::</span><span class="ruby-constant">DCAT_Record</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">meta:</span> <span class="ruby-identifier">meta</span>)
|
|
569
|
+
<span class="ruby-identifier">graph</span> = <span class="ruby-identifier">record</span>.<span class="ruby-identifier">get_dcat</span>
|
|
570
|
+
|
|
571
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">graph</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-value">:turtle</span>)
|
|
572
|
+
</pre>
|
|
573
|
+
|
|
574
|
+
<span id="label-2.+Generating+Test+Output+-28Output-29" class="legacy-anchor"></span>
|
|
575
|
+
<h3 id="2-generating-test-output-output"><a href="#2-generating-test-output-output">2. Generating Test Output (<code>Output</code>)</a></h3>
|
|
576
|
+
|
|
577
|
+
<pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'ftr_ruby'</span>
|
|
578
|
+
|
|
579
|
+
<span class="ruby-comment"># Meta comes from the same test definition used for DCAT_Record</span>
|
|
580
|
+
<span class="ruby-identifier">meta</span> = { <span class="ruby-operator">...</span> } <span class="ruby-comment"># same hash as above</span>
|
|
581
|
+
|
|
582
|
+
<span class="ruby-identifier">output</span> = <span class="ruby-constant">FtrRuby</span><span class="ruby-operator">::</span><span class="ruby-constant">Output</span>.<span class="ruby-identifier">new</span>(
|
|
583
|
+
<span class="ruby-value">testedGUID:</span> <span class="ruby-string">"https://doi.org/10.1234/example.dataset"</span>,
|
|
584
|
+
<span class="ruby-value">meta:</span> <span class="ruby-identifier">meta</span>
|
|
585
|
+
)
|
|
586
|
+
|
|
587
|
+
<span class="ruby-comment"># Add test results and comments</span>
|
|
588
|
+
<span class="ruby-identifier">output</span>.<span class="ruby-identifier">score</span> = <span class="ruby-string">"pass"</span>
|
|
589
|
+
<span class="ruby-identifier">output</span>.<span class="ruby-identifier">comments</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"The resource has a valid persistent identifier."</span>
|
|
590
|
+
<span class="ruby-identifier">output</span>.<span class="ruby-identifier">comments</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"Identifier resolves correctly."</span>
|
|
591
|
+
|
|
592
|
+
<span class="ruby-comment"># Optional: add guidance for non-passing cases</span>
|
|
593
|
+
<span class="ruby-identifier">output</span>.<span class="ruby-identifier">guidance</span> = [
|
|
594
|
+
[<span class="ruby-string">"https://example.org/fix-pid"</span>, <span class="ruby-string">"Register a persistent identifier"</span>],
|
|
595
|
+
]
|
|
596
|
+
|
|
597
|
+
<span class="ruby-identifier">jsonld</span> = <span class="ruby-identifier">output</span>.<span class="ruby-identifier">createEvaluationResponse</span>
|
|
598
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">jsonld</span>
|
|
599
|
+
</pre>
|
|
600
|
+
<hr>
|
|
601
|
+
|
|
602
|
+
<span id="label-Classes" class="legacy-anchor"></span>
|
|
603
|
+
<h2 id="classes"><a href="#classes">Classes</a></h2>
|
|
604
|
+
|
|
605
|
+
<span id="label-FtrRuby-3A-3ADCAT_Record" class="legacy-anchor"></span>
|
|
606
|
+
<h3 id="ftrrubydcatrecord"><a href="#ftrrubydcatrecord"><a href="FtrRuby/DCAT_Record.html"><code>FtrRuby::DCAT_Record</code></a></a></h3>
|
|
607
|
+
|
|
608
|
+
<p>Creates metadata describing the test itself.</p>
|
|
609
|
+
<ul><li>
|
|
610
|
+
<p>Builds a <code>dcat:DataService</code> + <code>ftr:Test</code></p>
|
|
611
|
+
</li><li>
|
|
612
|
+
<p>Automatically constructs endpoint URLs, landing pages, and identifiers</p>
|
|
613
|
+
</li><li>
|
|
614
|
+
<p>Includes indicators, metrics, themes, license, contact points, etc.</p>
|
|
615
|
+
</li></ul>
|
|
616
|
+
|
|
617
|
+
<p>See the class for full list of supported metadata fields.</p>
|
|
618
|
+
|
|
619
|
+
<span id="label-FtrRuby-3A-3AOutput" class="legacy-anchor"></span>
|
|
620
|
+
<h3 id="ftrrubyoutput"><a href="#ftrrubyoutput"><a href="FtrRuby/Output.html"><code>FtrRuby::Output</code></a></a></h3>
|
|
621
|
+
|
|
622
|
+
<p>Represents the result of executing a FAIR test against a specific resource.</p>
|
|
623
|
+
<ul><li>
|
|
624
|
+
<p>Produces a <code>ftr:TestResult</code> linked to a <code>ftr:TestExecutionActivity</code></p>
|
|
625
|
+
</li><li>
|
|
626
|
+
<p>Includes score, summary, log/comments, guidance suggestions, and provenance</p>
|
|
627
|
+
</li><li>
|
|
628
|
+
<p>Outputs as JSON-LD (with configurable prefixes)</p>
|
|
629
|
+
</li><li>
|
|
630
|
+
<p>Automatically handles assessment target (the tested GUID)</p>
|
|
631
|
+
</li></ul>
|
|
632
|
+
|
|
633
|
+
<p><strong>Key methods:</strong></p>
|
|
634
|
+
<ul><li>
|
|
635
|
+
<p><code>new(testedGUID:, meta:)</code> – Initialize with the tested resource and test metadata</p>
|
|
636
|
+
</li><li>
|
|
637
|
+
<p><code>createEvaluationResponse</code> – Returns JSON-LD string of the full evaluation graph</p>
|
|
638
|
+
</li></ul>
|
|
639
|
+
<hr>
|
|
640
|
+
|
|
641
|
+
<span id="label-Vocabulary+-26+Standards+Used" class="legacy-anchor"></span>
|
|
642
|
+
<h2 id="vocabulary--standards-used"><a href="#vocabulary--standards-used">Vocabulary & Standards Used</a></h2>
|
|
643
|
+
<ul><li>
|
|
644
|
+
<p><strong>DCAT</strong> – Data Catalog Vocabulary (W3C)</p>
|
|
645
|
+
</li><li>
|
|
646
|
+
<p><strong>DQV</strong> – Data Quality Vocabulary</p>
|
|
647
|
+
</li><li>
|
|
648
|
+
<p><strong>PROV</strong> – Provenance Ontology</p>
|
|
649
|
+
</li><li>
|
|
650
|
+
<p><strong>FTR</strong> – FAIR Test Registry vocabulary (<code>https://w3id.org/ftr#</code>)</p>
|
|
651
|
+
</li><li>
|
|
652
|
+
<p><strong>SIO</strong> – Semanticscience Integrated Ontology</p>
|
|
653
|
+
</li><li>
|
|
654
|
+
<p><strong>vCard</strong> – Contact points</p>
|
|
655
|
+
</li><li>
|
|
656
|
+
<p>Schema.org</p>
|
|
657
|
+
</li></ul>
|
|
658
|
+
<hr>
|
|
659
|
+
|
|
660
|
+
<span id="label-Project+Structure" class="legacy-anchor"></span>
|
|
661
|
+
<h2 id="project-structure"><a href="#project-structure">Project Structure</a></h2>
|
|
662
|
+
|
|
663
|
+
<pre>ftr_ruby/
|
|
664
|
+
├── lib/
|
|
665
|
+
│ └── ftr_ruby.rb
|
|
666
|
+
├── lib/ftr_ruby/
|
|
667
|
+
│ ├── dcat_record.rb
|
|
668
|
+
│ └── output.rb
|
|
669
|
+
└── README.md</pre>
|
|
670
|
+
<hr>
|
|
671
|
+
|
|
672
|
+
<span id="label-Contributing" class="legacy-anchor"></span>
|
|
673
|
+
<h2 id="contributing"><a href="#contributing">Contributing</a></h2>
|
|
674
|
+
|
|
675
|
+
<p>Bug reports and pull requests are welcome on GitHub at: <a href="https://github.com/markwilkinson/ftr_ruby">github.com/markwilkinson/ftr_ruby</a></p>
|
|
676
|
+
<hr>
|
|
677
|
+
|
|
678
|
+
<span id="label-License" class="legacy-anchor"></span>
|
|
679
|
+
<h2 id="license"><a href="#license">License</a></h2>
|
|
680
|
+
|
|
681
|
+
<p>This project is licensed under the <a href="LICENSE">MIT License</a> (or specify your license).</p>
|
|
682
|
+
<hr>
|
|
683
|
+
|
|
684
|
+
<span id="label-Acknowledgments" class="legacy-anchor"></span>
|
|
685
|
+
<h2 id="acknowledgments"><a href="#acknowledgments">Acknowledgments</a></h2>
|
|
686
|
+
|
|
687
|
+
<p>Developed in the context of the <strong>OSTrails</strong> project and the <strong>FAIR Champion</strong> initiative.</p>
|
|
688
|
+
<hr>
|
|
689
|
+
|
|
690
|
+
<p><strong>Made with ❤️ for the FAIR community</strong></p>
|
|
691
|
+
|
|
692
|
+
</main>
|
|
693
|
+
|
|
694
|
+
<aside class="table-of-contents" role="complementary" aria-label="Table of Contents">
|
|
695
|
+
<div class="toc-sticky">
|
|
696
|
+
<h3 class="toc-heading">On This Page</h3>
|
|
697
|
+
<nav class="toc-nav" id="toc-nav" aria-label="Page sections">
|
|
698
|
+
<!-- Generated by JavaScript based on page headings -->
|
|
699
|
+
</nav>
|
|
700
|
+
</div>
|
|
701
|
+
</aside>
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
<footer class="site-footer">
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
<div class="footer-bottom">
|
|
708
|
+
<p>
|
|
709
|
+
Generated by <a href="https://ruby.github.io/rdoc/">RDoc 7.2.0</a>
|
|
710
|
+
using the Aliki theme by <a href="http://st0012.dev">Stan Lo</a>
|
|
711
|
+
</p>
|
|
712
|
+
</div>
|
|
713
|
+
</footer>
|
|
714
|
+
|
|
715
|
+
</body>
|
|
716
|
+
|