squib 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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