squib 0.0.3 → 0.0.4

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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +29 -29
  3. data/.travis.yml +6 -6
  4. data/.yardopts +7 -7
  5. data/CHANGELOG.md +19 -0
  6. data/Gemfile +2 -2
  7. data/LICENSE.txt +22 -22
  8. data/README.md +256 -244
  9. data/Rakefile +11 -11
  10. data/bin/squib +18 -18
  11. data/lib/squib.rb +31 -31
  12. data/lib/squib/api/background.rb +18 -18
  13. data/lib/squib/api/data.rb +52 -52
  14. data/lib/squib/api/image.rb +66 -66
  15. data/lib/squib/api/save.rb +43 -43
  16. data/lib/squib/api/settings.rb +37 -38
  17. data/lib/squib/api/shapes.rb +116 -116
  18. data/lib/squib/api/text.rb +53 -50
  19. data/lib/squib/api/units.rb +16 -16
  20. data/lib/squib/card.rb +41 -41
  21. data/lib/squib/commands/new.rb +43 -43
  22. data/lib/squib/constants.rb +108 -104
  23. data/lib/squib/deck.rb +170 -116
  24. data/lib/squib/graphics/background.rb +13 -13
  25. data/lib/squib/graphics/image.rb +47 -47
  26. data/lib/squib/graphics/save_doc.rb +54 -54
  27. data/lib/squib/graphics/save_images.rb +32 -32
  28. data/lib/squib/graphics/shapes.rb +59 -59
  29. data/lib/squib/graphics/text.rb +116 -113
  30. data/lib/squib/input_helpers.rb +193 -193
  31. data/lib/squib/progress.rb +37 -37
  32. data/lib/squib/project_template/.gitignore +4 -4
  33. data/lib/squib/project_template/ABOUT.md +19 -19
  34. data/lib/squib/project_template/Gemfile +2 -2
  35. data/lib/squib/project_template/PNP NOTES.md +3 -3
  36. data/lib/squib/project_template/config.yml +19 -19
  37. data/lib/squib/project_template/deck.rb +5 -5
  38. data/lib/squib/version.rb +6 -6
  39. data/samples/autoscale_font.rb +27 -0
  40. data/samples/basic.rb +19 -19
  41. data/samples/colors.rb +15 -15
  42. data/samples/custom-config.yml +5 -5
  43. data/samples/custom-layout.yml +59 -39
  44. data/samples/custom_config.rb +18 -18
  45. data/samples/customconfig-imgdir/spanner2.svg +91 -91
  46. data/samples/draw_shapes.rb +18 -18
  47. data/samples/excel.rb +19 -19
  48. data/samples/hello_world.rb +6 -6
  49. data/samples/load_images.rb +29 -29
  50. data/samples/offset.svg +71 -71
  51. data/samples/portrait-landscape.rb +22 -22
  52. data/samples/ranges.rb +55 -55
  53. data/samples/save_pdf.rb +14 -14
  54. data/samples/spanner.svg +91 -91
  55. data/samples/text_options.rb +67 -60
  56. data/samples/tgc_proofs.rb +19 -19
  57. data/samples/units.rb +12 -12
  58. data/samples/use_layout.rb +33 -28
  59. data/spec/api/api_text_spec.rb +43 -43
  60. data/spec/commands/new_spec.rb +47 -47
  61. data/spec/data/easy-circular-extends.yml +6 -0
  62. data/spec/data/hard-circular-extends.yml +9 -0
  63. data/spec/data/multi-extends-single-entry.yml +14 -13
  64. data/spec/data/multi-level-extends.yml +9 -9
  65. data/spec/data/no-extends.yml +5 -5
  66. data/spec/data/pre-extends.yml +7 -0
  67. data/spec/data/self-circular-extends.yml +3 -0
  68. data/spec/data/single-extends.yml +7 -7
  69. data/spec/data/single-level-multi-extends.yml +11 -11
  70. data/spec/deck_spec.rb +188 -147
  71. data/spec/input_helpers_spec.rb +116 -116
  72. data/spec/samples_run_spec.rb +19 -19
  73. data/squib.gemspec +46 -46
  74. metadata +17 -7
@@ -1,14 +1,14 @@
1
- #!/usr/bin/env ruby
2
- require 'squib'
3
-
4
- Squib::Deck.new(width: 825, height: 1125, cards: 16) do
5
- background color: :gray
6
- rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
7
-
8
- text str: (1..16).to_a, x: 220, y: 78, font: 'Arial 54'
9
-
10
- save_pdf file: "sample-save-pdf.pdf", margin: 75, gap: 5, trim: 37
11
-
12
- #Note that our PNGs still are not trimmed even though the pdf ones are
13
- save_png range: 1, prefix: "save_pdf_"
14
- end
1
+ #!/usr/bin/env ruby
2
+ require 'squib'
3
+
4
+ Squib::Deck.new(width: 825, height: 1125, cards: 16) do
5
+ background color: :gray
6
+ rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
7
+
8
+ text str: (1..16).to_a, x: 220, y: 78, font: 'Arial 54'
9
+
10
+ save_pdf file: "sample-save-pdf.pdf", margin: 75, gap: 5, trim: 37
11
+
12
+ #Note that our PNGs still are not trimmed even though the pdf ones are
13
+ save_png range: 1, prefix: "save_pdf_"
14
+ end
@@ -1,91 +1,91 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
- viewBox="0 0 128 128"
11
- id="svg2"
12
- version="1.1"
13
- inkscape:version="0.48.3.1 r9886"
14
- width="100%"
15
- height="100%"
16
- sodipodi:docname="spanner.svg">
17
- <metadata
18
- id="metadata18">
19
- <rdf:RDF>
20
- <cc:Work
21
- rdf:about="">
22
- <dc:format>image/svg+xml</dc:format>
23
- <dc:type
24
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
- </cc:Work>
26
- </rdf:RDF>
27
- </metadata>
28
- <defs
29
- id="defs16" />
30
- <sodipodi:namedview
31
- pagecolor="#ffffff"
32
- bordercolor="#666666"
33
- borderopacity="1"
34
- objecttolerance="10"
35
- gridtolerance="10"
36
- guidetolerance="10"
37
- inkscape:pageopacity="0"
38
- inkscape:pageshadow="2"
39
- inkscape:window-width="1280"
40
- inkscape:window-height="1002"
41
- id="namedview14"
42
- showgrid="false"
43
- inkscape:zoom="2.8284271"
44
- inkscape:cx="98.928938"
45
- inkscape:cy="62.194589"
46
- inkscape:window-x="1912"
47
- inkscape:window-y="-8"
48
- inkscape:window-maximized="1"
49
- inkscape:current-layer="g3767"
50
- inkscape:document-units="in"
51
- units="px"
52
- showguides="true"
53
- inkscape:guide-bbox="true" />
54
- <g
55
- id="g3767"
56
- transform="matrix(0.24961486,0,0,0.24961486,0.197194,96.049335)">
57
- <rect
58
- ry="67.108368"
59
- y="-378.68747"
60
- x="5.3126979"
61
- height="501.3746"
62
- width="501.3746"
63
- id="backdrop"
64
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10.62539577;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
65
- inkscape:label="#rect3765" />
66
- <path
67
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
68
- d="M 36.267098,-7.709219 C 16.393265,5.1318032 3.2161811,27.462365 3.2161811,52.884128 c 0,39.825874 32.2852369,72.111092 72.1110909,72.111092 23.870397,0 44.964938,-11.67699 58.089488,-29.545518 -11.26063,7.275808 -24.65607,11.517748 -39.060173,11.517748 -39.825853,0 -72.11109,-32.285221 -72.11109,-72.111095 0,-15.95546 5.248882,-30.6218942 14.021601,-42.565574 z"
69
- id="path3790"
70
- inkscape:connector-curvature="0" />
71
- <g
72
- id="g6"
73
- transform="matrix(18.68858,0,0,18.68858,-3385.6437,-2608.3849)">
74
- <path
75
- style="fill:#ffffff"
76
- inkscape:connector-curvature="0"
77
- id="path8"
78
- d="m 192.2325,129.3203 -10,10 v 5.5625 h 5.375 l 10.0938,-10.0938 -5.4688,-5.4688 z" />
79
- <path
80
- style="fill:#ffffff;stroke:#000000"
81
- inkscape:connector-curvature="0"
82
- id="path10"
83
- d="m 181.7796,141.8591 15.6196,-15.6178 m 3.349,3.3486 -15.8051,15.8032" />
84
- <path
85
- style="fill:#ffffff"
86
- inkscape:connector-curvature="0"
87
- id="path12"
88
- d="m 201.2023,119.7104 c -2.8283,-0.73 -5.9623,-0.004 -8.1759,2.2097 -3.3293,3.3292 -3.3293,8.7358 -2e-5,12.065 3.32928,3.3292 8.7358,3.3292 12.065,0 2.216,-2.216 2.9436,-5.3452 2.2097,-8.1759 l -5.6348,5.6348 -4.8172,-1.2816 -1.2816,-4.8171 5.6348,-5.6348 z" />
89
- </g>
90
- </g>
91
- </svg>
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ viewBox="0 0 128 128"
11
+ id="svg2"
12
+ version="1.1"
13
+ inkscape:version="0.48.3.1 r9886"
14
+ width="100%"
15
+ height="100%"
16
+ sodipodi:docname="spanner.svg">
17
+ <metadata
18
+ id="metadata18">
19
+ <rdf:RDF>
20
+ <cc:Work
21
+ rdf:about="">
22
+ <dc:format>image/svg+xml</dc:format>
23
+ <dc:type
24
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
+ </cc:Work>
26
+ </rdf:RDF>
27
+ </metadata>
28
+ <defs
29
+ id="defs16" />
30
+ <sodipodi:namedview
31
+ pagecolor="#ffffff"
32
+ bordercolor="#666666"
33
+ borderopacity="1"
34
+ objecttolerance="10"
35
+ gridtolerance="10"
36
+ guidetolerance="10"
37
+ inkscape:pageopacity="0"
38
+ inkscape:pageshadow="2"
39
+ inkscape:window-width="1280"
40
+ inkscape:window-height="1002"
41
+ id="namedview14"
42
+ showgrid="false"
43
+ inkscape:zoom="2.8284271"
44
+ inkscape:cx="98.928938"
45
+ inkscape:cy="62.194589"
46
+ inkscape:window-x="1912"
47
+ inkscape:window-y="-8"
48
+ inkscape:window-maximized="1"
49
+ inkscape:current-layer="g3767"
50
+ inkscape:document-units="in"
51
+ units="px"
52
+ showguides="true"
53
+ inkscape:guide-bbox="true" />
54
+ <g
55
+ id="g3767"
56
+ transform="matrix(0.24961486,0,0,0.24961486,0.197194,96.049335)">
57
+ <rect
58
+ ry="67.108368"
59
+ y="-378.68747"
60
+ x="5.3126979"
61
+ height="501.3746"
62
+ width="501.3746"
63
+ id="backdrop"
64
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10.62539577;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
65
+ inkscape:label="#rect3765" />
66
+ <path
67
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
68
+ d="M 36.267098,-7.709219 C 16.393265,5.1318032 3.2161811,27.462365 3.2161811,52.884128 c 0,39.825874 32.2852369,72.111092 72.1110909,72.111092 23.870397,0 44.964938,-11.67699 58.089488,-29.545518 -11.26063,7.275808 -24.65607,11.517748 -39.060173,11.517748 -39.825853,0 -72.11109,-32.285221 -72.11109,-72.111095 0,-15.95546 5.248882,-30.6218942 14.021601,-42.565574 z"
69
+ id="path3790"
70
+ inkscape:connector-curvature="0" />
71
+ <g
72
+ id="g6"
73
+ transform="matrix(18.68858,0,0,18.68858,-3385.6437,-2608.3849)">
74
+ <path
75
+ style="fill:#ffffff"
76
+ inkscape:connector-curvature="0"
77
+ id="path8"
78
+ d="m 192.2325,129.3203 -10,10 v 5.5625 h 5.375 l 10.0938,-10.0938 -5.4688,-5.4688 z" />
79
+ <path
80
+ style="fill:#ffffff;stroke:#000000"
81
+ inkscape:connector-curvature="0"
82
+ id="path10"
83
+ d="m 181.7796,141.8591 15.6196,-15.6178 m 3.349,3.3486 -15.8051,15.8032" />
84
+ <path
85
+ style="fill:#ffffff"
86
+ inkscape:connector-curvature="0"
87
+ id="path12"
88
+ d="m 201.2023,119.7104 c -2.8283,-0.73 -5.9623,-0.004 -8.1759,2.2097 -3.3293,3.3292 -3.3293,8.7358 -2e-5,12.065 3.32928,3.3292 8.7358,3.3292 12.065,0 2.216,-2.216 2.9436,-5.3452 2.2097,-8.1759 l -5.6348,5.6348 -4.8172,-1.2816 -1.2816,-4.8171 5.6348,-5.6348 z" />
89
+ </g>
90
+ </g>
91
+ </svg>
@@ -1,60 +1,67 @@
1
- #!/usr/bin/env ruby
2
- require 'squib'
3
-
4
- data = {'name' => ['Thief', 'Grifter', 'Mastermind'],
5
- 'level' => [1,2,3]}
6
- longtext = "This is left-justified text.\nWhat do you know about tweetle beetles? well... \nWhen tweetle beetles fight, it's called a tweetle beetle battle. And when they battle in a puddle, it's a tweetle beetle puddle battle. AND when tweetle beetles battle with paddles in a puddle, they call it a tweetle beetle puddle paddle battle. AND... When beetles battle beetles in a puddle paddle battle and the beetle battle puddle is a puddle in a bottle... ..they call this a tweetle beetle bottle puddle paddle battle muddle. AND... When beetles fight these battles in a bottle with their paddles and the bottle's on a poodle and the poodle's eating noodles... ...they call this a muddle puddle tweetle poodle beetle noodle bottle paddle battle."
7
-
8
- Squib::Deck.new(width: 825, height: 1125, cards: 3) do
9
- background color: :white
10
- rect x: 15, y: 15, width: 795, height: 1095, x_radius: 50, y_radius: 50
11
- rect x: 30, y: 30, width: 128, height: 128, x_radius: 25, y_radius: 25
12
-
13
- # Arrays are rendered over each card
14
- text str: data['name'], x: 250, y: 55, font: 'Arial weight=900 54'
15
- text str: data['level'], x: 65, y: 40, font: 'Arial 72', color: :burnt_orange
16
-
17
- text str: "UTF-8 \u2663", x: 565, y: 150, font: 'Arial weight=900 36'
18
-
19
- text str: "Font strings are expressive!", x:65, y: 200,
20
- font: 'Impact bold italic 36'
21
-
22
- text str: "Font strings are expressive!", x:65, y: 300,
23
- font: 'Arial,Verdana weight=900 style=oblique 36'
24
-
25
- text str: "This text has fixed width, fixed height, center-aligned, middle-valigned, and has a red hint",
26
- hint: :red,
27
- x: 65, y: 400,
28
- width: 300, height: 200,
29
- align: :center, valign: :middle,
30
- font: 'Arial 18'
31
-
32
- text str: "Ellipsization!\nThe ultimate question of life, the universe, and everything to life and everything is 42",
33
- hint: :green, font: 'Arial 22',
34
- x: 450, y: 400,
35
- width: 280, height: 180,
36
- ellipsize: true
37
-
38
- hint text: :cyan
39
- text str: "Text hints are also globally togglable!",
40
- x: 65, y: 625,
41
- font: 'Arial 22'
42
- hint text: :off
43
- text str: "See? No hint here.",
44
- x: 565, y: 625,
45
- font: 'Arial 22'
46
-
47
- text str: longtext, font: 'Arial 16',
48
- x: 65, y: 700,
49
- width: inches(2.25), height: inches(1),
50
- justify: true
51
-
52
- text str: "<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome",
53
- markup: true,
54
- x: 50, y: 1000,
55
- width: 750, height: 100,
56
- valign: :bottom,
57
- font: 'Arial 32', hint: :cyan
58
-
59
- save prefix: 'text_', format: :png
60
- end
1
+ #!/usr/bin/env ruby
2
+ require 'squib'
3
+
4
+ data = {'name' => ['Thief', 'Grifter', 'Mastermind'],
5
+ 'level' => [1,2,3]}
6
+ longtext = "This is left-justified text.\nWhat do you know about tweetle beetles? well... \nWhen tweetle beetles fight, it's called a tweetle beetle battle. And when they battle in a puddle, it's a tweetle beetle puddle battle. AND when tweetle beetles battle with paddles in a puddle, they call it a tweetle beetle puddle paddle battle. AND... When beetles battle beetles in a puddle paddle battle and the beetle battle puddle is a puddle in a bottle... ..they call this a tweetle beetle bottle puddle paddle battle muddle. AND... When beetles fight these battles in a bottle with their paddles and the bottle's on a poodle and the poodle's eating noodles... ...they call this a muddle puddle tweetle poodle beetle noodle bottle paddle battle."
7
+
8
+ Squib::Deck.new(width: 825, height: 1125, cards: 3) do
9
+ background color: :white
10
+ rect x: 15, y: 15, width: 795, height: 1095, x_radius: 50, y_radius: 50
11
+ rect x: 30, y: 30, width: 128, height: 128, x_radius: 25, y_radius: 25
12
+
13
+ # Arrays are rendered over each card
14
+ text str: data['name'], x: 250, y: 55, font: 'Arial weight=900 54'
15
+ text str: data['level'], x: 65, y: 40, font: 'Arial 72', color: :burnt_orange
16
+
17
+ text str: "UTF-8 \u2663", x: 565, y: 150, font: 'Arial weight=900 36'
18
+
19
+ text str: "Font strings are expressive!", x:65, y: 200,
20
+ font: 'Impact bold italic 36'
21
+
22
+ text str: "Font strings are expressive!", x:65, y: 300,
23
+ font: 'Arial,Verdana weight=900 style=oblique 36'
24
+
25
+ text str: "Font string sizes can be overridden per card.", x: 65, y: 350,
26
+ font: 'Impact 36', font_size: [16, 20, 24]
27
+
28
+ text str: "This text has fixed width, fixed height, center-aligned, middle-valigned, and has a red hint",
29
+ hint: :red,
30
+ x: 65, y: 400,
31
+ width: 300, height: 200,
32
+ align: :center, valign: :middle,
33
+ font: 'Arial 18'
34
+
35
+ text str: "Ellipsization!\nThe ultimate question of life, the universe, and everything to life and everything is 42",
36
+ hint: :green, font: 'Arial 22',
37
+ x: 450, y: 400,
38
+ width: 280, height: 180,
39
+ ellipsize: true
40
+
41
+ hint text: :cyan
42
+ text str: "Text hints are also globally togglable!",
43
+ x: 65, y: 625,
44
+ font: 'Arial 22'
45
+ hint text: :off
46
+ text str: "See? No hint here.",
47
+ x: 565, y: 625,
48
+ font: 'Arial 22'
49
+
50
+ text str: "Rotated",
51
+ x: 565, y: 675, angle: 0.1,
52
+ font: 'Arial 18'
53
+
54
+ text str: longtext, font: 'Arial 16',
55
+ x: 65, y: 700,
56
+ width: inches(2.25), height: inches(1),
57
+ justify: true
58
+
59
+ text str: "<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome",
60
+ markup: true,
61
+ x: 50, y: 1000,
62
+ width: 750, height: 100,
63
+ valign: :bottom,
64
+ font: 'Arial 32', hint: :cyan
65
+
66
+ save prefix: 'text_', format: :png
67
+ end
@@ -1,20 +1,20 @@
1
- #!/usr/bin/env ruby
2
- require 'squib'
3
-
4
- # This sample uses a proof overlay from TheGameCrafter.com to check bleed
5
- Squib::Deck.new(width: 825, height: 1125, cards: 1) do
6
- background color: :white
7
- rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
8
- rect x: 75, y: 75, width: 128, height: 128, x_radius: 25, y_radius: 25
9
-
10
- text str: 'Mastermind', x: 220, y: 78, font: 'Arial 54'
11
- text str: 3, x: 75, y: 85, width: 128, font: 'Arial 72', align: :center
12
-
13
- png file: 'shiny-purse.png', x: 620, y: 75
14
- svg file: 'spanner.svg', x: 620, y: 218
15
-
16
- # TGC proof overlay
17
- png file: 'pokercard.png', x:0, y:0, alpha: 0.5
18
-
19
- save_png prefix: 'tgc_sample_'
1
+ #!/usr/bin/env ruby
2
+ require 'squib'
3
+
4
+ # This sample uses a proof overlay from TheGameCrafter.com to check bleed
5
+ Squib::Deck.new(width: 825, height: 1125, cards: 1) do
6
+ background color: :white
7
+ rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
8
+ rect x: 75, y: 75, width: 128, height: 128, x_radius: 25, y_radius: 25
9
+
10
+ text str: 'Mastermind', x: 220, y: 78, font: 'Arial 54'
11
+ text str: 3, x: 75, y: 85, width: 128, font: 'Arial 72', align: :center
12
+
13
+ png file: 'shiny-purse.png', x: 620, y: 75
14
+ svg file: 'spanner.svg', x: 620, y: 218
15
+
16
+ # TGC proof overlay
17
+ png file: 'pokercard.png', x:0, y:0, alpha: 0.5
18
+
19
+ save_png prefix: 'tgc_sample_'
20
20
  end
@@ -1,12 +1,12 @@
1
- require 'squib'
2
-
3
- Squib::Deck.new(width: 825, height: 1125, cards: 3) do
4
- background color: :white
5
-
6
- bleed = inches(0.125)
7
- cut_width = inches(2.5)
8
- cut_height = inches(3.5)
9
- rect x: bleed, y: bleed, width: cut_width, height: cut_height, radius: 25
10
-
11
- save prefix: 'units_', format: :png
12
- end
1
+ require 'squib'
2
+
3
+ Squib::Deck.new(width: 825, height: 1125, cards: 3) do
4
+ background color: :white
5
+
6
+ bleed = inches(0.125)
7
+ cut_width = inches(2.5)
8
+ cut_height = inches(3.5)
9
+ rect x: bleed, y: bleed, width: cut_width, height: cut_height, radius: 25
10
+
11
+ save prefix: 'units_', format: :png
12
+ end
@@ -1,29 +1,34 @@
1
- require 'squib'
2
-
3
- Squib::Deck.new(layout: 'custom-layout.yml') do
4
- background color: :white
5
- hint text: :cyan
6
-
7
- # Layouts are YAML files that specify any option as a default
8
- rect layout: :frame
9
-
10
- # You can also override a given layout entry in the command
11
- circle layout: :frame, x: 50, y: 50, radius: 25
12
-
13
- # Lots of commands have the :layout option
14
- text str: 'The Title', layout: :title
15
-
16
- # Layouts also support an "extends" attribute to reuse settings
17
- svg file: 'spanner.svg', layout: :icon_left
18
- png file: 'shiny-purse.png', layout: :icon_middle
19
- svg file: 'spanner.svg', layout: :icon_right
20
-
21
- # Strings can also be used to specify a layout (e.g. from a data file)
22
- text str: 'subtitle', layout: 'subtitle'
23
-
24
- # For debugging purposes, you can always print out the loaded layout
25
- #require 'pp'
26
- #pp @layout
27
-
28
- save_png prefix: 'layout_'
1
+ require 'squib'
2
+
3
+ Squib::Deck.new(layout: 'custom-layout.yml') do
4
+ background color: :white
5
+ hint text: :cyan
6
+
7
+ # Layouts are YAML files that specify any option as a default
8
+ rect layout: :frame
9
+
10
+ # You can also override a given layout entry in the command
11
+ circle layout: :frame, x: 50, y: 50, radius: 25
12
+
13
+ # Lots of commands have the :layout option
14
+ text str: 'The Title', layout: :title
15
+
16
+ # Layouts also support YAML merge keys toreuse settings
17
+ svg file: 'spanner.svg', layout: :icon_left
18
+ png file: 'shiny-purse.png', layout: :icon_middle
19
+ svg file: 'spanner.svg', layout: :icon_right
20
+
21
+ # Squib has its own, richer merge key: "extends"
22
+ rect fill_color: :black, layout: :bonus
23
+ rect fill_color: :white, layout: :bonus_inner
24
+ text str: 'Extends!', layout: :bonus_text
25
+
26
+ # Strings can also be used to specify a layout (e.g. from a data file)
27
+ text str: 'subtitle', layout: 'subtitle'
28
+
29
+ # For debugging purposes, you can always print out the loaded layout
30
+ #require 'pp'
31
+ #pp @layout
32
+
33
+ save_png prefix: 'layout_'
29
34
  end