sevgi-showcase 0.95.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +221 -2
  3. data/README.md +10 -17
  4. data/lib/sevgi/showcase/dark.rb +4 -0
  5. data/lib/sevgi/showcase/minitest/script.rb +59 -57
  6. data/lib/sevgi/showcase/minitest/suite.rb +48 -46
  7. data/lib/sevgi/showcase/minitest.rb +8 -1
  8. data/lib/sevgi/showcase/version.rb +1 -1
  9. data/lib/sevgi/showcase.rb +0 -3
  10. data/srv/arc.sevgi +29 -0
  11. data/srv/arc.svg +32 -0
  12. data/srv/arc.yml +4 -0
  13. data/srv/checkers.sevgi +78 -0
  14. data/srv/checkers.svg +118 -0
  15. data/srv/clover.sevgi +19 -0
  16. data/srv/clover.svg +12 -0
  17. data/srv/clover.yml +3 -0
  18. data/srv/copperplate.sevgi +50 -0
  19. data/srv/copperplate.svg +99 -0
  20. data/srv/copperplate.yml +5 -0
  21. data/srv/gear.sevgi +25 -0
  22. data/srv/gear.svg +12 -0
  23. data/srv/gear.yml +2 -0
  24. data/srv/grid.sevgi +23 -0
  25. data/srv/{grid-cells.svg → grid.svg} +14 -1
  26. data/srv/hatch.sevgi +9 -0
  27. data/srv/hatch.svg +30 -0
  28. data/srv/hatch.yml +4 -0
  29. data/srv/heart.sevgi +17 -0
  30. data/srv/heart.svg +9 -0
  31. data/srv/heart.yml +3 -0
  32. data/srv/logo.sevgi +39 -0
  33. data/srv/logo.svg +30 -0
  34. data/srv/logo.yml +4 -0
  35. data/srv/logos.sevgi +34 -0
  36. data/srv/logos.svg +39 -0
  37. data/srv/logos.yml +4 -0
  38. data/srv/meter.sevgi +20 -0
  39. data/srv/meter.svg +19 -0
  40. data/srv/orb.sevgi +14 -0
  41. data/srv/orb.svg +11 -0
  42. data/srv/orb.yml +4 -0
  43. data/srv/pacman.sevgi +18 -0
  44. data/srv/pacman.svg +16 -0
  45. data/srv/pokey.sevgi +14 -0
  46. data/srv/{pacman-pokey.svg → pokey.svg} +1 -3
  47. data/srv/protractor.sevgi +40 -0
  48. data/srv/protractor.svg +605 -0
  49. data/srv/ruler.sevgi +61 -0
  50. data/srv/ruler.svg +445 -0
  51. data/srv/{snow-flake.sevgi → snowflake.sevgi} +3 -3
  52. data/srv/{snow-flake.svg → snowflake.svg} +3 -2
  53. data/srv/snowflake.yml +2 -0
  54. data/srv/squared.sevgi +42 -0
  55. data/srv/squared.svg +71 -0
  56. data/srv/squared.yml +4 -0
  57. data/srv/stars.sevgi +19 -0
  58. data/srv/stars.svg +31 -0
  59. data/srv/stars.yml +3 -0
  60. data/srv/tulips.sevgi +27 -0
  61. data/srv/tulips.svg +20 -0
  62. data/srv/tulips.yml +3 -0
  63. metadata +66 -37
  64. data/lib/sevgi/showcase/minitest/shell.rb +0 -166
  65. data/srv/checker-board.sevgi +0 -96
  66. data/srv/checker-board.svg +0 -117
  67. data/srv/gear-wheel.sevgi +0 -27
  68. data/srv/gear-wheel.svg +0 -12
  69. data/srv/gear-wheel.yml +0 -3
  70. data/srv/grid-cells.sevgi +0 -24
  71. data/srv/heart-mask.sevgi +0 -17
  72. data/srv/heart-mask.svg +0 -8
  73. data/srv/heart-mask.yml +0 -3
  74. data/srv/meter-face.sevgi +0 -20
  75. data/srv/meter-face.svg +0 -13
  76. data/srv/pacman-pokey.sevgi +0 -17
  77. data/srv/pacman-single.sevgi +0 -17
  78. data/srv/pacman-single.svg +0 -14
  79. data/srv/ruler-hline.sevgi +0 -55
  80. data/srv/ruler-hline.svg +0 -443
  81. data/srv/ruler-line.sevgi +0 -52
  82. data/srv/ruler-line.svg +0 -443
  83. data/srv/snow-flake.yml +0 -1
  84. /data/srv/{checker-board.yml → checkers.yml} +0 -0
  85. /data/srv/{grid-cells.yml → grid.yml} +0 -0
  86. /data/srv/{meter-face.yml → meter.yml} +0 -0
  87. /data/srv/{pacman-pokey.yml → pacman.yml} +0 -0
  88. /data/srv/{pacman-single.yml → pokey.yml} +0 -0
  89. /data/srv/{ruler-hline.yml → protractor.yml} +0 -0
  90. /data/srv/{ruler-line.yml → ruler.yml} +0 -0
@@ -0,0 +1,605 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="150mm" height="85mm" viewBox="0 0 150 85">
3
+ <g fill="none" stroke="black" stroke-width="0.2">
4
+ <path d="M 5 75 A 70 70 0 0 1 145 75"/>
5
+ <path d="M 5 75 h 140"/>
6
+ <g transform="rotate(1.0 75 75)">
7
+ <path d="M 5 75 h 2"/>
8
+ </g>
9
+ <g transform="rotate(2.0 75 75)">
10
+ <path d="M 5 75 h 2"/>
11
+ </g>
12
+ <g transform="rotate(3.0 75 75)">
13
+ <path d="M 5 75 h 2"/>
14
+ </g>
15
+ <g transform="rotate(4.0 75 75)">
16
+ <path d="M 5 75 h 2"/>
17
+ </g>
18
+ <g transform="rotate(6.0 75 75)">
19
+ <path d="M 5 75 h 2"/>
20
+ </g>
21
+ <g transform="rotate(7.0 75 75)">
22
+ <path d="M 5 75 h 2"/>
23
+ </g>
24
+ <g transform="rotate(8.0 75 75)">
25
+ <path d="M 5 75 h 2"/>
26
+ </g>
27
+ <g transform="rotate(9.0 75 75)">
28
+ <path d="M 5 75 h 2"/>
29
+ </g>
30
+ <g transform="rotate(11.0 75 75)">
31
+ <path d="M 5 75 h 2"/>
32
+ </g>
33
+ <g transform="rotate(12.0 75 75)">
34
+ <path d="M 5 75 h 2"/>
35
+ </g>
36
+ <g transform="rotate(13.0 75 75)">
37
+ <path d="M 5 75 h 2"/>
38
+ </g>
39
+ <g transform="rotate(14.0 75 75)">
40
+ <path d="M 5 75 h 2"/>
41
+ </g>
42
+ <g transform="rotate(16.0 75 75)">
43
+ <path d="M 5 75 h 2"/>
44
+ </g>
45
+ <g transform="rotate(17.0 75 75)">
46
+ <path d="M 5 75 h 2"/>
47
+ </g>
48
+ <g transform="rotate(18.0 75 75)">
49
+ <path d="M 5 75 h 2"/>
50
+ </g>
51
+ <g transform="rotate(19.0 75 75)">
52
+ <path d="M 5 75 h 2"/>
53
+ </g>
54
+ <g transform="rotate(21.0 75 75)">
55
+ <path d="M 5 75 h 2"/>
56
+ </g>
57
+ <g transform="rotate(22.0 75 75)">
58
+ <path d="M 5 75 h 2"/>
59
+ </g>
60
+ <g transform="rotate(23.0 75 75)">
61
+ <path d="M 5 75 h 2"/>
62
+ </g>
63
+ <g transform="rotate(24.0 75 75)">
64
+ <path d="M 5 75 h 2"/>
65
+ </g>
66
+ <g transform="rotate(26.0 75 75)">
67
+ <path d="M 5 75 h 2"/>
68
+ </g>
69
+ <g transform="rotate(27.0 75 75)">
70
+ <path d="M 5 75 h 2"/>
71
+ </g>
72
+ <g transform="rotate(28.0 75 75)">
73
+ <path d="M 5 75 h 2"/>
74
+ </g>
75
+ <g transform="rotate(29.0 75 75)">
76
+ <path d="M 5 75 h 2"/>
77
+ </g>
78
+ <g transform="rotate(31.0 75 75)">
79
+ <path d="M 5 75 h 2"/>
80
+ </g>
81
+ <g transform="rotate(32.0 75 75)">
82
+ <path d="M 5 75 h 2"/>
83
+ </g>
84
+ <g transform="rotate(33.0 75 75)">
85
+ <path d="M 5 75 h 2"/>
86
+ </g>
87
+ <g transform="rotate(34.0 75 75)">
88
+ <path d="M 5 75 h 2"/>
89
+ </g>
90
+ <g transform="rotate(36.0 75 75)">
91
+ <path d="M 5 75 h 2"/>
92
+ </g>
93
+ <g transform="rotate(37.0 75 75)">
94
+ <path d="M 5 75 h 2"/>
95
+ </g>
96
+ <g transform="rotate(38.0 75 75)">
97
+ <path d="M 5 75 h 2"/>
98
+ </g>
99
+ <g transform="rotate(39.0 75 75)">
100
+ <path d="M 5 75 h 2"/>
101
+ </g>
102
+ <g transform="rotate(41.0 75 75)">
103
+ <path d="M 5 75 h 2"/>
104
+ </g>
105
+ <g transform="rotate(42.0 75 75)">
106
+ <path d="M 5 75 h 2"/>
107
+ </g>
108
+ <g transform="rotate(43.0 75 75)">
109
+ <path d="M 5 75 h 2"/>
110
+ </g>
111
+ <g transform="rotate(44.0 75 75)">
112
+ <path d="M 5 75 h 2"/>
113
+ </g>
114
+ <g transform="rotate(46.0 75 75)">
115
+ <path d="M 5 75 h 2"/>
116
+ </g>
117
+ <g transform="rotate(47.0 75 75)">
118
+ <path d="M 5 75 h 2"/>
119
+ </g>
120
+ <g transform="rotate(48.0 75 75)">
121
+ <path d="M 5 75 h 2"/>
122
+ </g>
123
+ <g transform="rotate(49.0 75 75)">
124
+ <path d="M 5 75 h 2"/>
125
+ </g>
126
+ <g transform="rotate(51.0 75 75)">
127
+ <path d="M 5 75 h 2"/>
128
+ </g>
129
+ <g transform="rotate(52.0 75 75)">
130
+ <path d="M 5 75 h 2"/>
131
+ </g>
132
+ <g transform="rotate(53.0 75 75)">
133
+ <path d="M 5 75 h 2"/>
134
+ </g>
135
+ <g transform="rotate(54.0 75 75)">
136
+ <path d="M 5 75 h 2"/>
137
+ </g>
138
+ <g transform="rotate(56.0 75 75)">
139
+ <path d="M 5 75 h 2"/>
140
+ </g>
141
+ <g transform="rotate(57.0 75 75)">
142
+ <path d="M 5 75 h 2"/>
143
+ </g>
144
+ <g transform="rotate(58.0 75 75)">
145
+ <path d="M 5 75 h 2"/>
146
+ </g>
147
+ <g transform="rotate(59.0 75 75)">
148
+ <path d="M 5 75 h 2"/>
149
+ </g>
150
+ <g transform="rotate(61.0 75 75)">
151
+ <path d="M 5 75 h 2"/>
152
+ </g>
153
+ <g transform="rotate(62.0 75 75)">
154
+ <path d="M 5 75 h 2"/>
155
+ </g>
156
+ <g transform="rotate(63.0 75 75)">
157
+ <path d="M 5 75 h 2"/>
158
+ </g>
159
+ <g transform="rotate(64.0 75 75)">
160
+ <path d="M 5 75 h 2"/>
161
+ </g>
162
+ <g transform="rotate(66.0 75 75)">
163
+ <path d="M 5 75 h 2"/>
164
+ </g>
165
+ <g transform="rotate(67.0 75 75)">
166
+ <path d="M 5 75 h 2"/>
167
+ </g>
168
+ <g transform="rotate(68.0 75 75)">
169
+ <path d="M 5 75 h 2"/>
170
+ </g>
171
+ <g transform="rotate(69.0 75 75)">
172
+ <path d="M 5 75 h 2"/>
173
+ </g>
174
+ <g transform="rotate(71.0 75 75)">
175
+ <path d="M 5 75 h 2"/>
176
+ </g>
177
+ <g transform="rotate(72.0 75 75)">
178
+ <path d="M 5 75 h 2"/>
179
+ </g>
180
+ <g transform="rotate(73.0 75 75)">
181
+ <path d="M 5 75 h 2"/>
182
+ </g>
183
+ <g transform="rotate(74.0 75 75)">
184
+ <path d="M 5 75 h 2"/>
185
+ </g>
186
+ <g transform="rotate(76.0 75 75)">
187
+ <path d="M 5 75 h 2"/>
188
+ </g>
189
+ <g transform="rotate(77.0 75 75)">
190
+ <path d="M 5 75 h 2"/>
191
+ </g>
192
+ <g transform="rotate(78.0 75 75)">
193
+ <path d="M 5 75 h 2"/>
194
+ </g>
195
+ <g transform="rotate(79.0 75 75)">
196
+ <path d="M 5 75 h 2"/>
197
+ </g>
198
+ <g transform="rotate(81.0 75 75)">
199
+ <path d="M 5 75 h 2"/>
200
+ </g>
201
+ <g transform="rotate(82.0 75 75)">
202
+ <path d="M 5 75 h 2"/>
203
+ </g>
204
+ <g transform="rotate(83.0 75 75)">
205
+ <path d="M 5 75 h 2"/>
206
+ </g>
207
+ <g transform="rotate(84.0 75 75)">
208
+ <path d="M 5 75 h 2"/>
209
+ </g>
210
+ <g transform="rotate(86.0 75 75)">
211
+ <path d="M 5 75 h 2"/>
212
+ </g>
213
+ <g transform="rotate(87.0 75 75)">
214
+ <path d="M 5 75 h 2"/>
215
+ </g>
216
+ <g transform="rotate(88.0 75 75)">
217
+ <path d="M 5 75 h 2"/>
218
+ </g>
219
+ <g transform="rotate(89.0 75 75)">
220
+ <path d="M 5 75 h 2"/>
221
+ </g>
222
+ <g transform="rotate(91.0 75 75)">
223
+ <path d="M 5 75 h 2"/>
224
+ </g>
225
+ <g transform="rotate(92.0 75 75)">
226
+ <path d="M 5 75 h 2"/>
227
+ </g>
228
+ <g transform="rotate(93.0 75 75)">
229
+ <path d="M 5 75 h 2"/>
230
+ </g>
231
+ <g transform="rotate(94.0 75 75)">
232
+ <path d="M 5 75 h 2"/>
233
+ </g>
234
+ <g transform="rotate(96.0 75 75)">
235
+ <path d="M 5 75 h 2"/>
236
+ </g>
237
+ <g transform="rotate(97.0 75 75)">
238
+ <path d="M 5 75 h 2"/>
239
+ </g>
240
+ <g transform="rotate(98.0 75 75)">
241
+ <path d="M 5 75 h 2"/>
242
+ </g>
243
+ <g transform="rotate(99.0 75 75)">
244
+ <path d="M 5 75 h 2"/>
245
+ </g>
246
+ <g transform="rotate(101.0 75 75)">
247
+ <path d="M 5 75 h 2"/>
248
+ </g>
249
+ <g transform="rotate(102.0 75 75)">
250
+ <path d="M 5 75 h 2"/>
251
+ </g>
252
+ <g transform="rotate(103.0 75 75)">
253
+ <path d="M 5 75 h 2"/>
254
+ </g>
255
+ <g transform="rotate(104.0 75 75)">
256
+ <path d="M 5 75 h 2"/>
257
+ </g>
258
+ <g transform="rotate(106.0 75 75)">
259
+ <path d="M 5 75 h 2"/>
260
+ </g>
261
+ <g transform="rotate(107.0 75 75)">
262
+ <path d="M 5 75 h 2"/>
263
+ </g>
264
+ <g transform="rotate(108.0 75 75)">
265
+ <path d="M 5 75 h 2"/>
266
+ </g>
267
+ <g transform="rotate(109.0 75 75)">
268
+ <path d="M 5 75 h 2"/>
269
+ </g>
270
+ <g transform="rotate(111.0 75 75)">
271
+ <path d="M 5 75 h 2"/>
272
+ </g>
273
+ <g transform="rotate(112.0 75 75)">
274
+ <path d="M 5 75 h 2"/>
275
+ </g>
276
+ <g transform="rotate(113.0 75 75)">
277
+ <path d="M 5 75 h 2"/>
278
+ </g>
279
+ <g transform="rotate(114.0 75 75)">
280
+ <path d="M 5 75 h 2"/>
281
+ </g>
282
+ <g transform="rotate(116.0 75 75)">
283
+ <path d="M 5 75 h 2"/>
284
+ </g>
285
+ <g transform="rotate(117.0 75 75)">
286
+ <path d="M 5 75 h 2"/>
287
+ </g>
288
+ <g transform="rotate(118.0 75 75)">
289
+ <path d="M 5 75 h 2"/>
290
+ </g>
291
+ <g transform="rotate(119.0 75 75)">
292
+ <path d="M 5 75 h 2"/>
293
+ </g>
294
+ <g transform="rotate(121.0 75 75)">
295
+ <path d="M 5 75 h 2"/>
296
+ </g>
297
+ <g transform="rotate(122.0 75 75)">
298
+ <path d="M 5 75 h 2"/>
299
+ </g>
300
+ <g transform="rotate(123.0 75 75)">
301
+ <path d="M 5 75 h 2"/>
302
+ </g>
303
+ <g transform="rotate(124.0 75 75)">
304
+ <path d="M 5 75 h 2"/>
305
+ </g>
306
+ <g transform="rotate(126.0 75 75)">
307
+ <path d="M 5 75 h 2"/>
308
+ </g>
309
+ <g transform="rotate(127.0 75 75)">
310
+ <path d="M 5 75 h 2"/>
311
+ </g>
312
+ <g transform="rotate(128.0 75 75)">
313
+ <path d="M 5 75 h 2"/>
314
+ </g>
315
+ <g transform="rotate(129.0 75 75)">
316
+ <path d="M 5 75 h 2"/>
317
+ </g>
318
+ <g transform="rotate(131.0 75 75)">
319
+ <path d="M 5 75 h 2"/>
320
+ </g>
321
+ <g transform="rotate(132.0 75 75)">
322
+ <path d="M 5 75 h 2"/>
323
+ </g>
324
+ <g transform="rotate(133.0 75 75)">
325
+ <path d="M 5 75 h 2"/>
326
+ </g>
327
+ <g transform="rotate(134.0 75 75)">
328
+ <path d="M 5 75 h 2"/>
329
+ </g>
330
+ <g transform="rotate(136.0 75 75)">
331
+ <path d="M 5 75 h 2"/>
332
+ </g>
333
+ <g transform="rotate(137.0 75 75)">
334
+ <path d="M 5 75 h 2"/>
335
+ </g>
336
+ <g transform="rotate(138.0 75 75)">
337
+ <path d="M 5 75 h 2"/>
338
+ </g>
339
+ <g transform="rotate(139.0 75 75)">
340
+ <path d="M 5 75 h 2"/>
341
+ </g>
342
+ <g transform="rotate(141.0 75 75)">
343
+ <path d="M 5 75 h 2"/>
344
+ </g>
345
+ <g transform="rotate(142.0 75 75)">
346
+ <path d="M 5 75 h 2"/>
347
+ </g>
348
+ <g transform="rotate(143.0 75 75)">
349
+ <path d="M 5 75 h 2"/>
350
+ </g>
351
+ <g transform="rotate(144.0 75 75)">
352
+ <path d="M 5 75 h 2"/>
353
+ </g>
354
+ <g transform="rotate(146.0 75 75)">
355
+ <path d="M 5 75 h 2"/>
356
+ </g>
357
+ <g transform="rotate(147.0 75 75)">
358
+ <path d="M 5 75 h 2"/>
359
+ </g>
360
+ <g transform="rotate(148.0 75 75)">
361
+ <path d="M 5 75 h 2"/>
362
+ </g>
363
+ <g transform="rotate(149.0 75 75)">
364
+ <path d="M 5 75 h 2"/>
365
+ </g>
366
+ <g transform="rotate(151.0 75 75)">
367
+ <path d="M 5 75 h 2"/>
368
+ </g>
369
+ <g transform="rotate(152.0 75 75)">
370
+ <path d="M 5 75 h 2"/>
371
+ </g>
372
+ <g transform="rotate(153.0 75 75)">
373
+ <path d="M 5 75 h 2"/>
374
+ </g>
375
+ <g transform="rotate(154.0 75 75)">
376
+ <path d="M 5 75 h 2"/>
377
+ </g>
378
+ <g transform="rotate(156.0 75 75)">
379
+ <path d="M 5 75 h 2"/>
380
+ </g>
381
+ <g transform="rotate(157.0 75 75)">
382
+ <path d="M 5 75 h 2"/>
383
+ </g>
384
+ <g transform="rotate(158.0 75 75)">
385
+ <path d="M 5 75 h 2"/>
386
+ </g>
387
+ <g transform="rotate(159.0 75 75)">
388
+ <path d="M 5 75 h 2"/>
389
+ </g>
390
+ <g transform="rotate(161.0 75 75)">
391
+ <path d="M 5 75 h 2"/>
392
+ </g>
393
+ <g transform="rotate(162.0 75 75)">
394
+ <path d="M 5 75 h 2"/>
395
+ </g>
396
+ <g transform="rotate(163.0 75 75)">
397
+ <path d="M 5 75 h 2"/>
398
+ </g>
399
+ <g transform="rotate(164.0 75 75)">
400
+ <path d="M 5 75 h 2"/>
401
+ </g>
402
+ <g transform="rotate(166.0 75 75)">
403
+ <path d="M 5 75 h 2"/>
404
+ </g>
405
+ <g transform="rotate(167.0 75 75)">
406
+ <path d="M 5 75 h 2"/>
407
+ </g>
408
+ <g transform="rotate(168.0 75 75)">
409
+ <path d="M 5 75 h 2"/>
410
+ </g>
411
+ <g transform="rotate(169.0 75 75)">
412
+ <path d="M 5 75 h 2"/>
413
+ </g>
414
+ <g transform="rotate(171.0 75 75)">
415
+ <path d="M 5 75 h 2"/>
416
+ </g>
417
+ <g transform="rotate(172.0 75 75)">
418
+ <path d="M 5 75 h 2"/>
419
+ </g>
420
+ <g transform="rotate(173.0 75 75)">
421
+ <path d="M 5 75 h 2"/>
422
+ </g>
423
+ <g transform="rotate(174.0 75 75)">
424
+ <path d="M 5 75 h 2"/>
425
+ </g>
426
+ <g transform="rotate(176.0 75 75)">
427
+ <path d="M 5 75 h 2"/>
428
+ </g>
429
+ <g transform="rotate(177.0 75 75)">
430
+ <path d="M 5 75 h 2"/>
431
+ </g>
432
+ <g transform="rotate(178.0 75 75)">
433
+ <path d="M 5 75 h 2"/>
434
+ </g>
435
+ <g transform="rotate(179.0 75 75)">
436
+ <path d="M 5 75 h 2"/>
437
+ </g>
438
+ <g transform="rotate(5.0 75 75)">
439
+ <path d="M 5 75 h 4"/>
440
+ </g>
441
+ <g transform="rotate(15.0 75 75)">
442
+ <path d="M 5 75 h 4"/>
443
+ </g>
444
+ <g transform="rotate(25.0 75 75)">
445
+ <path d="M 5 75 h 4"/>
446
+ </g>
447
+ <g transform="rotate(35.0 75 75)">
448
+ <path d="M 5 75 h 4"/>
449
+ </g>
450
+ <g transform="rotate(45.0 75 75)">
451
+ <path d="M 5 75 h 4"/>
452
+ </g>
453
+ <g transform="rotate(55.0 75 75)">
454
+ <path d="M 5 75 h 4"/>
455
+ </g>
456
+ <g transform="rotate(65.0 75 75)">
457
+ <path d="M 5 75 h 4"/>
458
+ </g>
459
+ <g transform="rotate(75.0 75 75)">
460
+ <path d="M 5 75 h 4"/>
461
+ </g>
462
+ <g transform="rotate(85.0 75 75)">
463
+ <path d="M 5 75 h 4"/>
464
+ </g>
465
+ <g transform="rotate(95.0 75 75)">
466
+ <path d="M 5 75 h 4"/>
467
+ </g>
468
+ <g transform="rotate(105.0 75 75)">
469
+ <path d="M 5 75 h 4"/>
470
+ </g>
471
+ <g transform="rotate(115.0 75 75)">
472
+ <path d="M 5 75 h 4"/>
473
+ </g>
474
+ <g transform="rotate(125.0 75 75)">
475
+ <path d="M 5 75 h 4"/>
476
+ </g>
477
+ <g transform="rotate(135.0 75 75)">
478
+ <path d="M 5 75 h 4"/>
479
+ </g>
480
+ <g transform="rotate(145.0 75 75)">
481
+ <path d="M 5 75 h 4"/>
482
+ </g>
483
+ <g transform="rotate(155.0 75 75)">
484
+ <path d="M 5 75 h 4"/>
485
+ </g>
486
+ <g transform="rotate(165.0 75 75)">
487
+ <path d="M 5 75 h 4"/>
488
+ </g>
489
+ <g transform="rotate(175.0 75 75)">
490
+ <path d="M 5 75 h 4"/>
491
+ </g>
492
+ <g transform="rotate(0.0 75 75)">
493
+ <path d="M 5 75 h 6"/>
494
+ </g>
495
+ <g transform="rotate(10.0 75 75)">
496
+ <path d="M 5 75 h 6"/>
497
+ </g>
498
+ <g transform="rotate(20.0 75 75)">
499
+ <path d="M 5 75 h 6"/>
500
+ </g>
501
+ <g transform="rotate(30.0 75 75)">
502
+ <path d="M 5 75 h 6"/>
503
+ </g>
504
+ <g transform="rotate(40.0 75 75)">
505
+ <path d="M 5 75 h 6"/>
506
+ </g>
507
+ <g transform="rotate(50.0 75 75)">
508
+ <path d="M 5 75 h 6"/>
509
+ </g>
510
+ <g transform="rotate(60.0 75 75)">
511
+ <path d="M 5 75 h 6"/>
512
+ </g>
513
+ <g transform="rotate(70.0 75 75)">
514
+ <path d="M 5 75 h 6"/>
515
+ </g>
516
+ <g transform="rotate(80.0 75 75)">
517
+ <path d="M 5 75 h 6"/>
518
+ </g>
519
+ <g transform="rotate(90.0 75 75)">
520
+ <path d="M 5 75 h 6"/>
521
+ </g>
522
+ <g transform="rotate(100.0 75 75)">
523
+ <path d="M 5 75 h 6"/>
524
+ </g>
525
+ <g transform="rotate(110.0 75 75)">
526
+ <path d="M 5 75 h 6"/>
527
+ </g>
528
+ <g transform="rotate(120.0 75 75)">
529
+ <path d="M 5 75 h 6"/>
530
+ </g>
531
+ <g transform="rotate(130.0 75 75)">
532
+ <path d="M 5 75 h 6"/>
533
+ </g>
534
+ <g transform="rotate(140.0 75 75)">
535
+ <path d="M 5 75 h 6"/>
536
+ </g>
537
+ <g transform="rotate(150.0 75 75)">
538
+ <path d="M 5 75 h 6"/>
539
+ </g>
540
+ <g transform="rotate(160.0 75 75)">
541
+ <path d="M 5 75 h 6"/>
542
+ </g>
543
+ <g transform="rotate(170.0 75 75)">
544
+ <path d="M 5 75 h 6"/>
545
+ </g>
546
+ <g transform="rotate(180.0 75 75)">
547
+ <path d="M 5 75 h 6"/>
548
+ </g>
549
+ <path d="M 73 75 h 4"/>
550
+ <path d="M 75 73 v 4"/>
551
+ </g>
552
+ <g fill="black" font-family="monospace" font-size="2.5pt" text-anchor="middle">
553
+ <g transform="rotate(10.0 75 75)">
554
+ <text x="18" y="75" dy="1" transform="rotate(-10.0 18 75)">10</text>
555
+ </g>
556
+ <g transform="rotate(20.0 75 75)">
557
+ <text x="18" y="75" dy="1" transform="rotate(-20.0 18 75)">20</text>
558
+ </g>
559
+ <g transform="rotate(30.0 75 75)">
560
+ <text x="18" y="75" dy="1" transform="rotate(-30.0 18 75)">30</text>
561
+ </g>
562
+ <g transform="rotate(40.0 75 75)">
563
+ <text x="18" y="75" dy="1" transform="rotate(-40.0 18 75)">40</text>
564
+ </g>
565
+ <g transform="rotate(50.0 75 75)">
566
+ <text x="18" y="75" dy="1" transform="rotate(-50.0 18 75)">50</text>
567
+ </g>
568
+ <g transform="rotate(60.0 75 75)">
569
+ <text x="18" y="75" dy="1" transform="rotate(-60.0 18 75)">60</text>
570
+ </g>
571
+ <g transform="rotate(70.0 75 75)">
572
+ <text x="18" y="75" dy="1" transform="rotate(-70.0 18 75)">70</text>
573
+ </g>
574
+ <g transform="rotate(80.0 75 75)">
575
+ <text x="18" y="75" dy="1" transform="rotate(-80.0 18 75)">80</text>
576
+ </g>
577
+ <g transform="rotate(90.0 75 75)">
578
+ <text x="18" y="75" dy="1" transform="rotate(-90.0 18 75)">90</text>
579
+ </g>
580
+ <g transform="rotate(100.0 75 75)">
581
+ <text x="18" y="75" dy="1" transform="rotate(-100.0 18 75)">100</text>
582
+ </g>
583
+ <g transform="rotate(110.0 75 75)">
584
+ <text x="18" y="75" dy="1" transform="rotate(-110.0 18 75)">110</text>
585
+ </g>
586
+ <g transform="rotate(120.0 75 75)">
587
+ <text x="18" y="75" dy="1" transform="rotate(-120.0 18 75)">120</text>
588
+ </g>
589
+ <g transform="rotate(130.0 75 75)">
590
+ <text x="18" y="75" dy="1" transform="rotate(-130.0 18 75)">130</text>
591
+ </g>
592
+ <g transform="rotate(140.0 75 75)">
593
+ <text x="18" y="75" dy="1" transform="rotate(-140.0 18 75)">140</text>
594
+ </g>
595
+ <g transform="rotate(150.0 75 75)">
596
+ <text x="18" y="75" dy="1" transform="rotate(-150.0 18 75)">150</text>
597
+ </g>
598
+ <g transform="rotate(160.0 75 75)">
599
+ <text x="18" y="75" dy="1" transform="rotate(-160.0 18 75)">160</text>
600
+ </g>
601
+ <g transform="rotate(170.0 75 75)">
602
+ <text x="18" y="75" dy="1" transform="rotate(-170.0 18 75)">170</text>
603
+ </g>
604
+ </g>
605
+ </svg>
data/srv/ruler.sevgi ADDED
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env -S ruby -S sevgi
2
+ # frozen_string_literal: true
3
+
4
+ WIDTH = 150 # 15 cm width (ruler's length)
5
+ HEIGHT = 20 # 2 cm height
6
+ PAGE_WIDTH = 170
7
+ PAGE_HEIGHT = 30
8
+
9
+ STYLE = {
10
+ ".labels" => { fill: "black", font: "3pt monospace" },
11
+ ".majors" => { stroke: "black", "stroke-width": 0.3 },
12
+ ".halves" => { stroke: "black", "stroke-width": 0.15 },
13
+ ".minors" => { stroke: "black", "stroke-width": 0.15 },
14
+ ".frame" => { stroke: "black", "stroke-width": 0.15, fill: "none" }
15
+ }.freeze
16
+
17
+ SVG width: "#{PAGE_WIDTH}mm", height: "#{PAGE_HEIGHT}mm",
18
+ viewBox: "0 0 #{PAGE_WIDTH} #{PAGE_HEIGHT}" do
19
+ css STYLE
20
+
21
+ ruler = g id: "ruler" do
22
+ rect id: "frame", width: WIDTH, height: HEIGHT, class: "frame"
23
+
24
+ layer id: "minors" do
25
+ length = 2
26
+
27
+ (0..WIDTH).step(1) do |x|
28
+ VLineBy x:, y: 0, length:, class: "minors"
29
+ VLineBy x:, y: HEIGHT, length: -length, class: "minors"
30
+ end
31
+ end
32
+
33
+ layer id: "halves" do
34
+ length = 4
35
+
36
+ (0..WIDTH).step(5) do |x|
37
+ VLineBy x:, y: 0, length:, class: "halves"
38
+ VLineBy x:, y: HEIGHT, length: -length, class: "halves"
39
+ end
40
+ end
41
+
42
+ layer id: "majors" do
43
+ length = 6
44
+
45
+ (10..(WIDTH - 10)).step(10) do |x|
46
+ VLineBy x:, y: 0, length:, class: "majors"
47
+ VLineBy x:, y: HEIGHT, length: -length, class: "majors"
48
+ end
49
+
50
+ layer id: "labels" do
51
+ (10..(WIDTH - 10)).step(10).each_with_index do |x, i|
52
+ text (i + 1).to_s, "text-anchor": "middle", x:, y: length + 5.5, class: "labels"
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ offset_x = (PAGE_WIDTH - WIDTH) / 2
59
+ offset_y = (PAGE_HEIGHT - HEIGHT) / 2
60
+ ruler.Translate offset_x, offset_y
61
+ end.Save