sevgi-showcase 0.94.0 → 0.98.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/CHANGELOG.md +275 -2
- data/LICENSE +672 -3
- data/README.md +9 -17
- data/lib/sevgi/showcase/dark.rb +4 -0
- data/lib/sevgi/showcase/minitest/script.rb +59 -57
- data/lib/sevgi/showcase/minitest/shell.rb +136 -113
- data/lib/sevgi/showcase/minitest/suite.rb +48 -46
- data/lib/sevgi/showcase/minitest.rb +6 -0
- data/lib/sevgi/showcase/version.rb +1 -1
- data/lib/sevgi/showcase.rb +1 -2
- data/srv/checkers.sevgi +79 -0
- data/srv/checkers.svg +117 -0
- data/srv/clover.sevgi +19 -0
- data/srv/clover.svg +11 -0
- data/srv/clover.yml +3 -0
- data/srv/copperplate.sevgi +50 -0
- data/srv/copperplate.svg +99 -0
- data/srv/copperplate.yml +5 -0
- data/srv/{gear-wheel.sevgi → gear.sevgi} +7 -9
- data/srv/gear.svg +11 -0
- data/srv/gear.yml +2 -0
- data/srv/{grid-cells.sevgi → grid.sevgi} +9 -9
- data/srv/{grid-cells.svg → grid.svg} +13 -1
- data/srv/heart.sevgi +17 -0
- data/srv/{heart-mask.svg → heart.svg} +3 -3
- data/srv/heart.yml +3 -0
- data/srv/logo.sevgi +39 -0
- data/srv/logo.svg +29 -0
- data/srv/logo.yml +4 -0
- data/srv/logos.sevgi +34 -0
- data/srv/logos.svg +38 -0
- data/srv/logos.yml +4 -0
- data/srv/{meter-face.sevgi → meter.sevgi} +6 -6
- data/srv/meter.svg +18 -0
- data/srv/pacman.sevgi +18 -0
- data/srv/pacman.svg +15 -0
- data/srv/pokey.sevgi +14 -0
- data/srv/pokey.svg +6 -0
- data/srv/{ruler-line.sevgi → ruler-.sevgi} +7 -7
- data/srv/ruler.sevgi +61 -0
- data/srv/ruler.svg +445 -0
- data/srv/{snow-flake.sevgi → snowflake.sevgi} +2 -2
- data/srv/{snow-flake.svg → snowflake.svg} +1 -1
- data/srv/snowflake.yml +2 -0
- data/srv/squared.sevgi +42 -0
- data/srv/squared.svg +71 -0
- data/srv/squared.yml +4 -0
- data/srv/stars.sevgi +19 -0
- data/srv/stars.svg +30 -0
- data/srv/stars.yml +3 -0
- data/srv/tulips.sevgi +27 -0
- data/srv/tulips.svg +19 -0
- data/srv/tulips.yml +3 -0
- metadata +57 -36
- data/srv/checker-board.sevgi +0 -96
- data/srv/checker-board.svg +0 -117
- data/srv/gear-wheel.svg +0 -12
- data/srv/gear-wheel.yml +0 -3
- data/srv/heart-mask.sevgi +0 -17
- data/srv/heart-mask.yml +0 -3
- data/srv/meter-face.svg +0 -13
- data/srv/pacman-pokey.sevgi +0 -17
- data/srv/pacman-pokey.svg +0 -9
- data/srv/pacman-single.sevgi +0 -17
- data/srv/pacman-single.svg +0 -14
- data/srv/ruler-hline.sevgi +0 -55
- data/srv/ruler-hline.svg +0 -443
- data/srv/snow-flake.yml +0 -1
- /data/srv/{checker-board.yml → checkers.yml} +0 -0
- /data/srv/{grid-cells.yml → grid.yml} +0 -0
- /data/srv/{meter-face.yml → meter.yml} +0 -0
- /data/srv/{pacman-pokey.yml → pacman.yml} +0 -0
- /data/srv/{pacman-single.yml → pokey.yml} +0 -0
- /data/srv/{ruler-line.svg → ruler-.svg} +0 -0
- /data/srv/{ruler-hline.yml → ruler-.yml} +0 -0
- /data/srv/{ruler-line.yml → ruler.yml} +0 -0
data/srv/stars.yml
ADDED
data/srv/tulips.sevgi
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env -S ruby -S sevgi
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
TULIP = <<~PATH
|
|
5
|
+
m 7.072424,8.784891 c -1.62123,1.620145 -4.24191,1.620145 -5.860483,0
|
|
6
|
+
-1.611497,-1.619275 -1.62034,-4.239086 0,-5.854824 l 2.928473,-2.930067
|
|
7
|
+
-0.48823,3.907639 3.42024,-0.977572 -0.98,3.417962 3.90758,-0.488766
|
|
8
|
+
-2.92758,2.925628
|
|
9
|
+
PATH
|
|
10
|
+
|
|
11
|
+
CENTER = 13
|
|
12
|
+
SIDE = 3.5
|
|
13
|
+
ANCHOR = [1.211941, 8.784891].freeze
|
|
14
|
+
CORNER = [CENTER + (SIDE / 2), CENTER - (SIDE / 2)].freeze
|
|
15
|
+
SIZE = 26
|
|
16
|
+
|
|
17
|
+
SVG :minimal, width: SIZE, height: SIZE do
|
|
18
|
+
rect width: SIZE, height: SIZE, rx: 0.75, fill: "white"
|
|
19
|
+
defs { path id: "Tulip", d: TULIP, fill: "purple" }
|
|
20
|
+
|
|
21
|
+
4.times do |quarter|
|
|
22
|
+
flower = use href: "#Tulip", x: CORNER[0] - ANCHOR[0], y: CORNER[1] - ANCHOR[1]
|
|
23
|
+
flower.Rotate quarter * 90, CENTER, CENTER
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
square x: CENTER - (SIDE / 2), y: CENTER - (SIDE / 2), length: SIDE, fill: "purple"
|
|
27
|
+
end.Save
|
data/srv/tulips.svg
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg width="26" height="26">
|
|
2
|
+
<rect width="26" height="26" rx="0.75" fill="white"/>
|
|
3
|
+
<defs>
|
|
4
|
+
<path
|
|
5
|
+
id="Tulip"
|
|
6
|
+
d="m 7.072424,8.784891 c -1.62123,1.620145 -4.24191,1.620145 -5.860483,0
|
|
7
|
+
-1.611497,-1.619275 -1.62034,-4.239086 0,-5.854824 l 2.928473,-2.930067
|
|
8
|
+
-0.48823,3.907639 3.42024,-0.977572 -0.98,3.417962 3.90758,-0.488766
|
|
9
|
+
-2.92758,2.925628
|
|
10
|
+
"
|
|
11
|
+
fill="purple"
|
|
12
|
+
/>
|
|
13
|
+
</defs>
|
|
14
|
+
<use href="#Tulip" x="13.538059" y="2.465109"/>
|
|
15
|
+
<use href="#Tulip" x="13.538059" y="2.465109" transform="rotate(90, 13, 13)"/>
|
|
16
|
+
<use href="#Tulip" x="13.538059" y="2.465109" transform="rotate(180, 13, 13)"/>
|
|
17
|
+
<use href="#Tulip" x="13.538059" y="2.465109" transform="rotate(270, 13, 13)"/>
|
|
18
|
+
<rect width="3.5" height="3.5" x="11.25" y="11.25" fill="purple"/>
|
|
19
|
+
</svg>
|
data/srv/tulips.yml
ADDED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sevgi-showcase
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.98.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Recai Oktaş
|
|
@@ -15,15 +15,15 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.
|
|
18
|
+
version: 0.98.2
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.
|
|
26
|
-
description:
|
|
25
|
+
version: 0.98.2
|
|
26
|
+
description: Packages tested .sevgi examples and documentation site support.
|
|
27
27
|
email: roktas@gmail.com
|
|
28
28
|
executables: []
|
|
29
29
|
extensions: []
|
|
@@ -40,36 +40,57 @@ files:
|
|
|
40
40
|
- lib/sevgi/showcase/minitest/suite.rb
|
|
41
41
|
- lib/sevgi/showcase/passive.rb
|
|
42
42
|
- lib/sevgi/showcase/version.rb
|
|
43
|
-
- srv/
|
|
44
|
-
- srv/
|
|
45
|
-
- srv/
|
|
46
|
-
- srv/
|
|
47
|
-
- srv/
|
|
48
|
-
- srv/
|
|
49
|
-
- srv/
|
|
50
|
-
- srv/
|
|
51
|
-
- srv/
|
|
52
|
-
- srv/
|
|
53
|
-
- srv/
|
|
54
|
-
- srv/
|
|
55
|
-
- srv/
|
|
56
|
-
- srv/
|
|
57
|
-
- srv/
|
|
58
|
-
- srv/
|
|
59
|
-
- srv/
|
|
60
|
-
- srv/
|
|
61
|
-
- srv/
|
|
62
|
-
- srv/
|
|
63
|
-
- srv/
|
|
64
|
-
- srv/
|
|
65
|
-
- srv/
|
|
66
|
-
- srv/
|
|
67
|
-
- srv/
|
|
68
|
-
- srv/
|
|
69
|
-
- srv/
|
|
70
|
-
- srv/
|
|
71
|
-
- srv/
|
|
72
|
-
- srv/
|
|
43
|
+
- srv/checkers.sevgi
|
|
44
|
+
- srv/checkers.svg
|
|
45
|
+
- srv/checkers.yml
|
|
46
|
+
- srv/clover.sevgi
|
|
47
|
+
- srv/clover.svg
|
|
48
|
+
- srv/clover.yml
|
|
49
|
+
- srv/copperplate.sevgi
|
|
50
|
+
- srv/copperplate.svg
|
|
51
|
+
- srv/copperplate.yml
|
|
52
|
+
- srv/gear.sevgi
|
|
53
|
+
- srv/gear.svg
|
|
54
|
+
- srv/gear.yml
|
|
55
|
+
- srv/grid.sevgi
|
|
56
|
+
- srv/grid.svg
|
|
57
|
+
- srv/grid.yml
|
|
58
|
+
- srv/heart.sevgi
|
|
59
|
+
- srv/heart.svg
|
|
60
|
+
- srv/heart.yml
|
|
61
|
+
- srv/logo.sevgi
|
|
62
|
+
- srv/logo.svg
|
|
63
|
+
- srv/logo.yml
|
|
64
|
+
- srv/logos.sevgi
|
|
65
|
+
- srv/logos.svg
|
|
66
|
+
- srv/logos.yml
|
|
67
|
+
- srv/meter.sevgi
|
|
68
|
+
- srv/meter.svg
|
|
69
|
+
- srv/meter.yml
|
|
70
|
+
- srv/pacman.sevgi
|
|
71
|
+
- srv/pacman.svg
|
|
72
|
+
- srv/pacman.yml
|
|
73
|
+
- srv/pokey.sevgi
|
|
74
|
+
- srv/pokey.svg
|
|
75
|
+
- srv/pokey.yml
|
|
76
|
+
- srv/ruler-.sevgi
|
|
77
|
+
- srv/ruler-.svg
|
|
78
|
+
- srv/ruler-.yml
|
|
79
|
+
- srv/ruler.sevgi
|
|
80
|
+
- srv/ruler.svg
|
|
81
|
+
- srv/ruler.yml
|
|
82
|
+
- srv/snowflake.sevgi
|
|
83
|
+
- srv/snowflake.svg
|
|
84
|
+
- srv/snowflake.yml
|
|
85
|
+
- srv/squared.sevgi
|
|
86
|
+
- srv/squared.svg
|
|
87
|
+
- srv/squared.yml
|
|
88
|
+
- srv/stars.sevgi
|
|
89
|
+
- srv/stars.svg
|
|
90
|
+
- srv/stars.yml
|
|
91
|
+
- srv/tulips.sevgi
|
|
92
|
+
- srv/tulips.svg
|
|
93
|
+
- srv/tulips.yml
|
|
73
94
|
homepage: https://sevgi.roktas.dev
|
|
74
95
|
licenses:
|
|
75
96
|
- GPL-3.0-or-later
|
|
@@ -92,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
92
113
|
- !ruby/object:Gem::Version
|
|
93
114
|
version: '0'
|
|
94
115
|
requirements: []
|
|
95
|
-
rubygems_version: 4.0.
|
|
116
|
+
rubygems_version: 4.0.16
|
|
96
117
|
specification_version: 4
|
|
97
|
-
summary:
|
|
118
|
+
summary: Executable examples and user documentation for Sevgi.
|
|
98
119
|
test_files: []
|
data/srv/checker-board.sevgi
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S ruby -S sevgi
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
class CheckerBoard
|
|
5
|
-
BOARD_MARGIN = 50
|
|
6
|
-
CELL_SIZE = 100
|
|
7
|
-
PIECE_SIZE = 80
|
|
8
|
-
|
|
9
|
-
STYLE = {
|
|
10
|
-
".board-frame" => { fill: "#d1bfa7", stroke: "#6a3f2b" },
|
|
11
|
-
".inner-frame" => {
|
|
12
|
-
fill: "#6a3f2b",
|
|
13
|
-
stroke: "#6a3f2b",
|
|
14
|
-
"stroke-width": (BOARD_MARGIN * 0.7).round
|
|
15
|
-
},
|
|
16
|
-
".cell" => { stroke: "white", "stroke-width": 1 },
|
|
17
|
-
".light.cell" => { fill: "#d4a76f" },
|
|
18
|
-
".dark.cell" => { fill: "#6a3f2b" },
|
|
19
|
-
".piece" => {
|
|
20
|
-
filter: "drop-shadow(8px 8px 8px rgba(0, 0, 0, 0.5))",
|
|
21
|
-
stroke: "none"
|
|
22
|
-
},
|
|
23
|
-
".light.piece" => { fill: "#f5f5f5" },
|
|
24
|
-
".dark.piece" => { fill: "#333" }
|
|
25
|
-
}.freeze
|
|
26
|
-
|
|
27
|
-
def initialize
|
|
28
|
-
@pieces = []
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def width = (CELL_SIZE * 8) + (BOARD_MARGIN * 2)
|
|
32
|
-
|
|
33
|
-
def height = width
|
|
34
|
-
|
|
35
|
-
def view_box = "0 0 #{width} #{height}"
|
|
36
|
-
|
|
37
|
-
def add_piece(row, col, dark: false)
|
|
38
|
-
@pieces << [row, col, dark]
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def render_on(svg)
|
|
42
|
-
svg.css STYLE
|
|
43
|
-
add_frame(svg)
|
|
44
|
-
add_cells(svg)
|
|
45
|
-
add_pieces(svg)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
private
|
|
49
|
-
|
|
50
|
-
def add_frame(svg)
|
|
51
|
-
svg.rect class: "board-frame", x: 0, y: 0, width: width, height: height
|
|
52
|
-
svg.rect class: "inner-frame", x: BOARD_MARGIN, y: BOARD_MARGIN,
|
|
53
|
-
width: width - (BOARD_MARGIN * 2),
|
|
54
|
-
height: height - (BOARD_MARGIN * 2)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def add_cells(svg)
|
|
58
|
-
8.times do |row|
|
|
59
|
-
8.times do |col|
|
|
60
|
-
svg.rect class: "#{(row + col).even? ? "dark" : "light"} cell",
|
|
61
|
-
x: (col * CELL_SIZE) + BOARD_MARGIN,
|
|
62
|
-
y: (row * CELL_SIZE) + BOARD_MARGIN,
|
|
63
|
-
width: CELL_SIZE,
|
|
64
|
-
height: CELL_SIZE
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def add_pieces(svg)
|
|
70
|
-
@pieces.each do |row, col, dark|
|
|
71
|
-
x = (col * CELL_SIZE) + BOARD_MARGIN + 10
|
|
72
|
-
y = (row * CELL_SIZE) + BOARD_MARGIN + 10
|
|
73
|
-
|
|
74
|
-
svg.circle class: "#{dark ? "dark" : "light"} piece",
|
|
75
|
-
cx: x + (PIECE_SIZE / 2),
|
|
76
|
-
cy: y + (PIECE_SIZE / 2),
|
|
77
|
-
r: PIECE_SIZE / 2
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
board = CheckerBoard.new
|
|
83
|
-
|
|
84
|
-
[1, 3, 5, 7].each do |col|
|
|
85
|
-
board.add_piece 0, col, dark: true
|
|
86
|
-
board.add_piece 6, col, dark: false
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
[0, 2, 4, 6].each do |col|
|
|
90
|
-
board.add_piece 1, col, dark: true
|
|
91
|
-
board.add_piece 7, col, dark: false
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
SVG :minimal, width: board.width, height: board.height, viewBox: board.view_box do
|
|
95
|
-
board.render_on(self)
|
|
96
|
-
end.Save
|
data/srv/checker-board.svg
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
<svg width="900" height="900" viewBox="0 0 900 900">
|
|
2
|
-
<style type="text/css">
|
|
3
|
-
<![CDATA[
|
|
4
|
-
.board-frame {
|
|
5
|
-
fill: #d1bfa7;
|
|
6
|
-
stroke: #6a3f2b;
|
|
7
|
-
}
|
|
8
|
-
.inner-frame {
|
|
9
|
-
fill: #6a3f2b;
|
|
10
|
-
stroke: #6a3f2b;
|
|
11
|
-
stroke-width: 35;
|
|
12
|
-
}
|
|
13
|
-
.cell {
|
|
14
|
-
stroke: white;
|
|
15
|
-
stroke-width: 1;
|
|
16
|
-
}
|
|
17
|
-
.light.cell {
|
|
18
|
-
fill: #d4a76f;
|
|
19
|
-
}
|
|
20
|
-
.dark.cell {
|
|
21
|
-
fill: #6a3f2b;
|
|
22
|
-
}
|
|
23
|
-
.piece {
|
|
24
|
-
filter: drop-shadow(8px 8px 8px rgba(0, 0, 0, 0.5));
|
|
25
|
-
stroke: none;
|
|
26
|
-
}
|
|
27
|
-
.light.piece {
|
|
28
|
-
fill: #f5f5f5;
|
|
29
|
-
}
|
|
30
|
-
.dark.piece {
|
|
31
|
-
fill: #333;
|
|
32
|
-
}
|
|
33
|
-
]]>
|
|
34
|
-
</style>
|
|
35
|
-
<rect class="board-frame" x="0" y="0" width="900" height="900"/>
|
|
36
|
-
<rect class="inner-frame" x="50" y="50" width="800" height="800"/>
|
|
37
|
-
<rect class="dark cell" x="50" y="50" width="100" height="100"/>
|
|
38
|
-
<rect class="light cell" x="150" y="50" width="100" height="100"/>
|
|
39
|
-
<rect class="dark cell" x="250" y="50" width="100" height="100"/>
|
|
40
|
-
<rect class="light cell" x="350" y="50" width="100" height="100"/>
|
|
41
|
-
<rect class="dark cell" x="450" y="50" width="100" height="100"/>
|
|
42
|
-
<rect class="light cell" x="550" y="50" width="100" height="100"/>
|
|
43
|
-
<rect class="dark cell" x="650" y="50" width="100" height="100"/>
|
|
44
|
-
<rect class="light cell" x="750" y="50" width="100" height="100"/>
|
|
45
|
-
<rect class="light cell" x="50" y="150" width="100" height="100"/>
|
|
46
|
-
<rect class="dark cell" x="150" y="150" width="100" height="100"/>
|
|
47
|
-
<rect class="light cell" x="250" y="150" width="100" height="100"/>
|
|
48
|
-
<rect class="dark cell" x="350" y="150" width="100" height="100"/>
|
|
49
|
-
<rect class="light cell" x="450" y="150" width="100" height="100"/>
|
|
50
|
-
<rect class="dark cell" x="550" y="150" width="100" height="100"/>
|
|
51
|
-
<rect class="light cell" x="650" y="150" width="100" height="100"/>
|
|
52
|
-
<rect class="dark cell" x="750" y="150" width="100" height="100"/>
|
|
53
|
-
<rect class="dark cell" x="50" y="250" width="100" height="100"/>
|
|
54
|
-
<rect class="light cell" x="150" y="250" width="100" height="100"/>
|
|
55
|
-
<rect class="dark cell" x="250" y="250" width="100" height="100"/>
|
|
56
|
-
<rect class="light cell" x="350" y="250" width="100" height="100"/>
|
|
57
|
-
<rect class="dark cell" x="450" y="250" width="100" height="100"/>
|
|
58
|
-
<rect class="light cell" x="550" y="250" width="100" height="100"/>
|
|
59
|
-
<rect class="dark cell" x="650" y="250" width="100" height="100"/>
|
|
60
|
-
<rect class="light cell" x="750" y="250" width="100" height="100"/>
|
|
61
|
-
<rect class="light cell" x="50" y="350" width="100" height="100"/>
|
|
62
|
-
<rect class="dark cell" x="150" y="350" width="100" height="100"/>
|
|
63
|
-
<rect class="light cell" x="250" y="350" width="100" height="100"/>
|
|
64
|
-
<rect class="dark cell" x="350" y="350" width="100" height="100"/>
|
|
65
|
-
<rect class="light cell" x="450" y="350" width="100" height="100"/>
|
|
66
|
-
<rect class="dark cell" x="550" y="350" width="100" height="100"/>
|
|
67
|
-
<rect class="light cell" x="650" y="350" width="100" height="100"/>
|
|
68
|
-
<rect class="dark cell" x="750" y="350" width="100" height="100"/>
|
|
69
|
-
<rect class="dark cell" x="50" y="450" width="100" height="100"/>
|
|
70
|
-
<rect class="light cell" x="150" y="450" width="100" height="100"/>
|
|
71
|
-
<rect class="dark cell" x="250" y="450" width="100" height="100"/>
|
|
72
|
-
<rect class="light cell" x="350" y="450" width="100" height="100"/>
|
|
73
|
-
<rect class="dark cell" x="450" y="450" width="100" height="100"/>
|
|
74
|
-
<rect class="light cell" x="550" y="450" width="100" height="100"/>
|
|
75
|
-
<rect class="dark cell" x="650" y="450" width="100" height="100"/>
|
|
76
|
-
<rect class="light cell" x="750" y="450" width="100" height="100"/>
|
|
77
|
-
<rect class="light cell" x="50" y="550" width="100" height="100"/>
|
|
78
|
-
<rect class="dark cell" x="150" y="550" width="100" height="100"/>
|
|
79
|
-
<rect class="light cell" x="250" y="550" width="100" height="100"/>
|
|
80
|
-
<rect class="dark cell" x="350" y="550" width="100" height="100"/>
|
|
81
|
-
<rect class="light cell" x="450" y="550" width="100" height="100"/>
|
|
82
|
-
<rect class="dark cell" x="550" y="550" width="100" height="100"/>
|
|
83
|
-
<rect class="light cell" x="650" y="550" width="100" height="100"/>
|
|
84
|
-
<rect class="dark cell" x="750" y="550" width="100" height="100"/>
|
|
85
|
-
<rect class="dark cell" x="50" y="650" width="100" height="100"/>
|
|
86
|
-
<rect class="light cell" x="150" y="650" width="100" height="100"/>
|
|
87
|
-
<rect class="dark cell" x="250" y="650" width="100" height="100"/>
|
|
88
|
-
<rect class="light cell" x="350" y="650" width="100" height="100"/>
|
|
89
|
-
<rect class="dark cell" x="450" y="650" width="100" height="100"/>
|
|
90
|
-
<rect class="light cell" x="550" y="650" width="100" height="100"/>
|
|
91
|
-
<rect class="dark cell" x="650" y="650" width="100" height="100"/>
|
|
92
|
-
<rect class="light cell" x="750" y="650" width="100" height="100"/>
|
|
93
|
-
<rect class="light cell" x="50" y="750" width="100" height="100"/>
|
|
94
|
-
<rect class="dark cell" x="150" y="750" width="100" height="100"/>
|
|
95
|
-
<rect class="light cell" x="250" y="750" width="100" height="100"/>
|
|
96
|
-
<rect class="dark cell" x="350" y="750" width="100" height="100"/>
|
|
97
|
-
<rect class="light cell" x="450" y="750" width="100" height="100"/>
|
|
98
|
-
<rect class="dark cell" x="550" y="750" width="100" height="100"/>
|
|
99
|
-
<rect class="light cell" x="650" y="750" width="100" height="100"/>
|
|
100
|
-
<rect class="dark cell" x="750" y="750" width="100" height="100"/>
|
|
101
|
-
<circle class="dark piece" cx="200" cy="100" r="40"/>
|
|
102
|
-
<circle class="light piece" cx="200" cy="700" r="40"/>
|
|
103
|
-
<circle class="dark piece" cx="400" cy="100" r="40"/>
|
|
104
|
-
<circle class="light piece" cx="400" cy="700" r="40"/>
|
|
105
|
-
<circle class="dark piece" cx="600" cy="100" r="40"/>
|
|
106
|
-
<circle class="light piece" cx="600" cy="700" r="40"/>
|
|
107
|
-
<circle class="dark piece" cx="800" cy="100" r="40"/>
|
|
108
|
-
<circle class="light piece" cx="800" cy="700" r="40"/>
|
|
109
|
-
<circle class="dark piece" cx="100" cy="200" r="40"/>
|
|
110
|
-
<circle class="light piece" cx="100" cy="800" r="40"/>
|
|
111
|
-
<circle class="dark piece" cx="300" cy="200" r="40"/>
|
|
112
|
-
<circle class="light piece" cx="300" cy="800" r="40"/>
|
|
113
|
-
<circle class="dark piece" cx="500" cy="200" r="40"/>
|
|
114
|
-
<circle class="light piece" cx="500" cy="800" r="40"/>
|
|
115
|
-
<circle class="dark piece" cx="700" cy="200" r="40"/>
|
|
116
|
-
<circle class="light piece" cx="700" cy="800" r="40"/>
|
|
117
|
-
</svg>
|
data/srv/gear-wheel.svg
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
<svg width="100" height="100" viewBox="0 0 100 100">
|
|
2
|
-
<rect x="0" y="0" width="100" height="100" fill="lightgreen"/>
|
|
3
|
-
<mask id="hole" maskUnits="userSpaceOnUse" maskContentUnits="userSpaceOnUse" x="0" y="0" width="100" height="100">
|
|
4
|
-
<rect x="0" y="0" width="100" height="100" fill="white"/>
|
|
5
|
-
<circle cx="50" cy="50" r="15" fill="black"/>
|
|
6
|
-
</mask>
|
|
7
|
-
<circle cx="50" cy="50" r="30" mask="url(#hole)" fill="#333" stroke="none"/>
|
|
8
|
-
<rect x="45" y="10" width="10" height="80" mask="url(#hole)" transform="rotate(0 50 50)" fill="#333" stroke="none"/>
|
|
9
|
-
<rect x="45" y="10" width="10" height="80" mask="url(#hole)" transform="rotate(45 50 50)" fill="#333" stroke="none"/>
|
|
10
|
-
<rect x="45" y="10" width="10" height="80" mask="url(#hole)" transform="rotate(90 50 50)" fill="#333" stroke="none"/>
|
|
11
|
-
<rect x="45" y="10" width="10" height="80" mask="url(#hole)" transform="rotate(135 50 50)" fill="#333" stroke="none"/>
|
|
12
|
-
</svg>
|
data/srv/gear-wheel.yml
DELETED
data/srv/heart-mask.sevgi
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S ruby -S sevgi
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
HEART_PATH = "M10,35 A20,20,0,0,1,50,35 A20,20,0,0,1,90,35 Q90,65,50,95 Q10,65,10,35 Z"
|
|
5
|
-
|
|
6
|
-
SVG :minimal, width: 120, height: 120, viewBox: "-10 -10 120 120" do
|
|
7
|
-
mask id: "heart",
|
|
8
|
-
maskUnits: "userSpaceOnUse",
|
|
9
|
-
maskContentUnits: "userSpaceOnUse",
|
|
10
|
-
x: 0, y: 0, width: 100, height: 100 do
|
|
11
|
-
rect x: 0, y: 0, width: 100, height: 100, fill: "white"
|
|
12
|
-
path d: HEART_PATH, fill: "black"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
polygon points: %w[-10,120 120,120 120,-10], fill: "orange"
|
|
16
|
-
circle cx: 50, cy: 50, r: 50, mask: "url(#heart)", fill: "red"
|
|
17
|
-
end.Save
|
data/srv/heart-mask.yml
DELETED
data/srv/meter-face.svg
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<svg width="128" height="30" viewBox="0 0 128 30">
|
|
2
|
-
<rect x="2" y="2" width="124" height="26" rx="4" fill="none" stroke="#666"/>
|
|
3
|
-
<rect x="5" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="1"/>
|
|
4
|
-
<rect x="17" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="1"/>
|
|
5
|
-
<rect x="29" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="1"/>
|
|
6
|
-
<rect x="41" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="1"/>
|
|
7
|
-
<rect x="53" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="1"/>
|
|
8
|
-
<rect x="65" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="1"/>
|
|
9
|
-
<rect x="77" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="1"/>
|
|
10
|
-
<rect x="89" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="0.3"/>
|
|
11
|
-
<rect x="101" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="0.3"/>
|
|
12
|
-
<rect x="113" y="5" width="10" height="20" rx="3" fill="green" fill-opacity="0.3"/>
|
|
13
|
-
</svg>
|
data/srv/pacman-pokey.sevgi
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S ruby -S sevgi
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
SVG width: 100, height: 100 do
|
|
5
|
-
rect x: 0, y: 0, width: 100, height: 100, fill: "white"
|
|
6
|
-
circle cx: 50, cy: 50, r: 40, fill: "purple"
|
|
7
|
-
rect x: 10, y: 50, width: 80, height: 50, fill: "purple"
|
|
8
|
-
|
|
9
|
-
[ 25, 50 ].each do |x|
|
|
10
|
-
circle cx: x, cy: 40, r: 8, fill: "white"
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
path fill: "white", d: %w[
|
|
14
|
-
M11 100 l13 -15 l13 15 l13 -15
|
|
15
|
-
l13 15 l13 -15 l13 15 Z
|
|
16
|
-
]
|
|
17
|
-
end.Save
|
data/srv/pacman-pokey.svg
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" standalone="no"?>
|
|
2
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
|
|
3
|
-
<rect x="0" y="0" width="100" height="100" fill="white"/>
|
|
4
|
-
<circle cx="50" cy="50" r="40" fill="purple"/>
|
|
5
|
-
<rect x="10" y="50" width="80" height="50" fill="purple"/>
|
|
6
|
-
<circle cx="25" cy="40" r="8" fill="white"/>
|
|
7
|
-
<circle cx="50" cy="40" r="8" fill="white"/>
|
|
8
|
-
<path fill="white" d="M11 100 l13 -15 l13 15 l13 -15 l13 15 l13 -15 l13 15 Z"/>
|
|
9
|
-
</svg>
|
data/srv/pacman-single.sevgi
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S ruby -S sevgi
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
SVG :minimal, width: 200, height: 100 do
|
|
5
|
-
rect id: "frame", width: 200, height: 100, rx: 5, fill: "white"
|
|
6
|
-
|
|
7
|
-
circle id: "head", cx: 80, cy: 50, r: 40, fill: "purple"
|
|
8
|
-
circle id: "eye", cx: 90, cy: 28, r: 6, fill: "white"
|
|
9
|
-
polygon id: "mouth", points: %w[ 80,50 120,20 120,80 ], fill: "white"
|
|
10
|
-
|
|
11
|
-
symbol id: "dot" do
|
|
12
|
-
circle cx: 120, cy: 50, r: 6, fill: "purple"
|
|
13
|
-
end
|
|
14
|
-
g id: "dots" do
|
|
15
|
-
TileX "dot", n: 3, d: 18
|
|
16
|
-
end
|
|
17
|
-
end.Save
|
data/srv/pacman-single.svg
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<svg width="200" height="100">
|
|
2
|
-
<rect id="frame" width="200" height="100" rx="5" fill="white"/>
|
|
3
|
-
<circle id="head" cx="80" cy="50" r="40" fill="purple"/>
|
|
4
|
-
<circle id="eye" cx="90" cy="28" r="6" fill="white"/>
|
|
5
|
-
<polygon id="mouth" points="80,50 120,20 120,80" fill="white"/>
|
|
6
|
-
<symbol id="dot">
|
|
7
|
-
<circle cx="120" cy="50" r="6" fill="purple"/>
|
|
8
|
-
</symbol>
|
|
9
|
-
<g id="dots">
|
|
10
|
-
<use id="dot-1" href="#dot" class="tile-col-1 tile-col-first"/>
|
|
11
|
-
<use id="dot-2" href="#dot" class="tile-col-2" x="18"/>
|
|
12
|
-
<use id="dot-3" href="#dot" class="tile-col-3 tile-col-last" x="36"/>
|
|
13
|
-
</g>
|
|
14
|
-
</svg>
|
data/srv/ruler-hline.sevgi
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env -S ruby -S sevgi
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
# 15 cm width (ruler's length)
|
|
5
|
-
WIDTH = 150
|
|
6
|
-
# 2 cm height
|
|
7
|
-
HEIGHT = 20
|
|
8
|
-
|
|
9
|
-
STYLE = {
|
|
10
|
-
".labels": {fill: "black", font: "3pt monospace"},
|
|
11
|
-
".majors": {stroke: "black", "stroke-width": 0.2},
|
|
12
|
-
".halves": {stroke: "black", "stroke-width": 0.1},
|
|
13
|
-
".minors": {stroke: "black", "stroke-width": 0.1},
|
|
14
|
-
".frame": {stroke: "black", "stroke-width": 0.1, fill: "none"}
|
|
15
|
-
}.freeze
|
|
16
|
-
|
|
17
|
-
SVG(width: "210mm", height: "50mm", viewBox: "0 0 210 50") do
|
|
18
|
-
css(STYLE)
|
|
19
|
-
|
|
20
|
-
rect(id: "frame", width: WIDTH, height: HEIGHT, class: "frame")
|
|
21
|
-
|
|
22
|
-
layer(id: "minors") do
|
|
23
|
-
length = 2
|
|
24
|
-
|
|
25
|
-
(0..WIDTH).step(1) do |x|
|
|
26
|
-
VLineBy(x:, y: 0, length: length, class: "minors")
|
|
27
|
-
VLineBy(x:, y: HEIGHT, length: -length, class: "minors")
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
layer(id: "halves") do
|
|
32
|
-
length = 4
|
|
33
|
-
|
|
34
|
-
(0..WIDTH).step(5) do |x|
|
|
35
|
-
VLineBy(x:, y: 0, length: length, class: "halves")
|
|
36
|
-
VLineBy(x:, y: HEIGHT, length: -length, class: "halves")
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
layer(id: "majors") do
|
|
41
|
-
length = 6
|
|
42
|
-
|
|
43
|
-
(10..(WIDTH - 10)).step(10) do |x|
|
|
44
|
-
VLineBy(x:, y: 0, length: length, class: "majors")
|
|
45
|
-
VLineBy(x:, y: HEIGHT, length: -length, class: "majors")
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
layer(id: "labels") do
|
|
49
|
-
(10..(WIDTH - 10)).step(10).each_with_index do |x, i|
|
|
50
|
-
text((i + 1).to_s, "text-anchor": "middle", x:, y: length + 5.5, class: "labels")
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
.Save()
|