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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +275 -2
  3. data/LICENSE +672 -3
  4. data/README.md +9 -17
  5. data/lib/sevgi/showcase/dark.rb +4 -0
  6. data/lib/sevgi/showcase/minitest/script.rb +59 -57
  7. data/lib/sevgi/showcase/minitest/shell.rb +136 -113
  8. data/lib/sevgi/showcase/minitest/suite.rb +48 -46
  9. data/lib/sevgi/showcase/minitest.rb +6 -0
  10. data/lib/sevgi/showcase/version.rb +1 -1
  11. data/lib/sevgi/showcase.rb +1 -2
  12. data/srv/checkers.sevgi +79 -0
  13. data/srv/checkers.svg +117 -0
  14. data/srv/clover.sevgi +19 -0
  15. data/srv/clover.svg +11 -0
  16. data/srv/clover.yml +3 -0
  17. data/srv/copperplate.sevgi +50 -0
  18. data/srv/copperplate.svg +99 -0
  19. data/srv/copperplate.yml +5 -0
  20. data/srv/{gear-wheel.sevgi → gear.sevgi} +7 -9
  21. data/srv/gear.svg +11 -0
  22. data/srv/gear.yml +2 -0
  23. data/srv/{grid-cells.sevgi → grid.sevgi} +9 -9
  24. data/srv/{grid-cells.svg → grid.svg} +13 -1
  25. data/srv/heart.sevgi +17 -0
  26. data/srv/{heart-mask.svg → heart.svg} +3 -3
  27. data/srv/heart.yml +3 -0
  28. data/srv/logo.sevgi +39 -0
  29. data/srv/logo.svg +29 -0
  30. data/srv/logo.yml +4 -0
  31. data/srv/logos.sevgi +34 -0
  32. data/srv/logos.svg +38 -0
  33. data/srv/logos.yml +4 -0
  34. data/srv/{meter-face.sevgi → meter.sevgi} +6 -6
  35. data/srv/meter.svg +18 -0
  36. data/srv/pacman.sevgi +18 -0
  37. data/srv/pacman.svg +15 -0
  38. data/srv/pokey.sevgi +14 -0
  39. data/srv/pokey.svg +6 -0
  40. data/srv/{ruler-line.sevgi → ruler-.sevgi} +7 -7
  41. data/srv/ruler.sevgi +61 -0
  42. data/srv/ruler.svg +445 -0
  43. data/srv/{snow-flake.sevgi → snowflake.sevgi} +2 -2
  44. data/srv/{snow-flake.svg → snowflake.svg} +1 -1
  45. data/srv/snowflake.yml +2 -0
  46. data/srv/squared.sevgi +42 -0
  47. data/srv/squared.svg +71 -0
  48. data/srv/squared.yml +4 -0
  49. data/srv/stars.sevgi +19 -0
  50. data/srv/stars.svg +30 -0
  51. data/srv/stars.yml +3 -0
  52. data/srv/tulips.sevgi +27 -0
  53. data/srv/tulips.svg +19 -0
  54. data/srv/tulips.yml +3 -0
  55. metadata +57 -36
  56. data/srv/checker-board.sevgi +0 -96
  57. data/srv/checker-board.svg +0 -117
  58. data/srv/gear-wheel.svg +0 -12
  59. data/srv/gear-wheel.yml +0 -3
  60. data/srv/heart-mask.sevgi +0 -17
  61. data/srv/heart-mask.yml +0 -3
  62. data/srv/meter-face.svg +0 -13
  63. data/srv/pacman-pokey.sevgi +0 -17
  64. data/srv/pacman-pokey.svg +0 -9
  65. data/srv/pacman-single.sevgi +0 -17
  66. data/srv/pacman-single.svg +0 -14
  67. data/srv/ruler-hline.sevgi +0 -55
  68. data/srv/ruler-hline.svg +0 -443
  69. data/srv/snow-flake.yml +0 -1
  70. /data/srv/{checker-board.yml → checkers.yml} +0 -0
  71. /data/srv/{grid-cells.yml → grid.yml} +0 -0
  72. /data/srv/{meter-face.yml → meter.yml} +0 -0
  73. /data/srv/{pacman-pokey.yml → pacman.yml} +0 -0
  74. /data/srv/{pacman-single.yml → pokey.yml} +0 -0
  75. /data/srv/{ruler-line.svg → ruler-.svg} +0 -0
  76. /data/srv/{ruler-hline.yml → ruler-.yml} +0 -0
  77. /data/srv/{ruler-line.yml → ruler.yml} +0 -0
data/srv/stars.yml ADDED
@@ -0,0 +1,3 @@
1
+ dark:
2
+ purple: "#e5c39c"
3
+ white: "#222222"
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
@@ -0,0 +1,3 @@
1
+ dark:
2
+ purple: "#e5c39c"
3
+ white: "#222222"
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.94.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.94.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.94.0
26
- description: Provides documents and examples to demonstrate the Sevgi toolkit.
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/checker-board.sevgi
44
- - srv/checker-board.svg
45
- - srv/checker-board.yml
46
- - srv/gear-wheel.sevgi
47
- - srv/gear-wheel.svg
48
- - srv/gear-wheel.yml
49
- - srv/grid-cells.sevgi
50
- - srv/grid-cells.svg
51
- - srv/grid-cells.yml
52
- - srv/heart-mask.sevgi
53
- - srv/heart-mask.svg
54
- - srv/heart-mask.yml
55
- - srv/meter-face.sevgi
56
- - srv/meter-face.svg
57
- - srv/meter-face.yml
58
- - srv/pacman-pokey.sevgi
59
- - srv/pacman-pokey.svg
60
- - srv/pacman-pokey.yml
61
- - srv/pacman-single.sevgi
62
- - srv/pacman-single.svg
63
- - srv/pacman-single.yml
64
- - srv/ruler-hline.sevgi
65
- - srv/ruler-hline.svg
66
- - srv/ruler-hline.yml
67
- - srv/ruler-line.sevgi
68
- - srv/ruler-line.svg
69
- - srv/ruler-line.yml
70
- - srv/snow-flake.sevgi
71
- - srv/snow-flake.svg
72
- - srv/snow-flake.yml
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.10
116
+ rubygems_version: 4.0.16
96
117
  specification_version: 4
97
- summary: Documents and examples for the Sevgi toolkit.
118
+ summary: Executable examples and user documentation for Sevgi.
98
119
  test_files: []
@@ -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
@@ -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
@@ -1,3 +0,0 @@
1
- dark:
2
- "#333": "#e5c39c"
3
- lightgreen: "#1f3522"
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
@@ -1,3 +0,0 @@
1
- dark:
2
- orange: "#f2b35d"
3
- red: "#e8505b"
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>
@@ -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>
@@ -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
@@ -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>
@@ -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()