squib 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +29 -29
- data/.travis.yml +6 -6
- data/.yardopts +7 -5
- data/Gemfile +2 -2
- data/LICENSE.txt +22 -22
- data/README.md +245 -92
- data/Rakefile +11 -11
- data/bin/squib +18 -18
- data/lib/squib.rb +31 -18
- data/lib/squib/api/background.rb +18 -16
- data/lib/squib/api/data.rb +52 -52
- data/lib/squib/api/image.rb +66 -48
- data/lib/squib/api/save.rb +43 -37
- data/lib/squib/api/settings.rb +38 -35
- data/lib/squib/api/shapes.rb +116 -106
- data/lib/squib/api/text.rb +50 -45
- data/lib/squib/api/units.rb +16 -16
- data/lib/squib/card.rb +42 -36
- data/lib/squib/commands/new.rb +43 -39
- data/lib/squib/constants.rb +104 -39
- data/lib/squib/deck.rb +116 -113
- data/lib/squib/graphics/background.rb +13 -12
- data/lib/squib/graphics/image.rb +47 -28
- data/lib/squib/graphics/save_doc.rb +54 -50
- data/lib/squib/graphics/save_images.rb +32 -10
- data/lib/squib/graphics/shapes.rb +59 -55
- data/lib/squib/graphics/text.rb +113 -107
- data/lib/squib/input_helpers.rb +193 -139
- data/lib/squib/progress.rb +38 -0
- data/lib/squib/project_template/.gitignore +4 -3
- data/lib/squib/project_template/ABOUT.md +19 -19
- data/lib/squib/project_template/Gemfile +2 -2
- data/lib/squib/project_template/PNP NOTES.md +3 -3
- data/lib/squib/project_template/config.yml +20 -2
- data/lib/squib/project_template/deck.rb +5 -5
- data/lib/squib/version.rb +6 -6
- data/samples/ball.png +0 -0
- data/samples/basic.rb +19 -19
- data/samples/colors.rb +15 -16
- data/samples/custom-config.yml +6 -1
- data/samples/custom-layout.yml +39 -34
- data/samples/custom_config.rb +18 -5
- data/samples/customconfig-imgdir/shiny-purse2.png +0 -0
- data/samples/customconfig-imgdir/spanner2.svg +91 -0
- data/samples/draw_shapes.rb +18 -18
- data/samples/excel.rb +19 -19
- data/samples/grit.png +0 -0
- data/samples/hello_world.rb +6 -6
- data/samples/load_images.rb +29 -19
- data/samples/offset.svg +71 -0
- data/samples/portrait-landscape.rb +23 -0
- data/samples/ranges.rb +55 -47
- data/samples/save_pdf.rb +14 -14
- data/samples/shiny-purse.png +0 -0
- data/samples/spanner.svg +91 -91
- data/samples/text_options.rb +60 -58
- data/samples/tgc_proofs.rb +19 -19
- data/samples/units.rb +12 -12
- data/samples/use_layout.rb +28 -28
- data/spec/api/api_text_spec.rb +42 -36
- data/spec/commands/new_spec.rb +47 -47
- data/spec/data/multi-extends-single-entry.yml +13 -0
- data/spec/data/multi-level-extends.yml +10 -0
- data/spec/data/no-extends.yml +5 -0
- data/spec/data/single-extends.yml +7 -0
- data/spec/data/single-level-multi-extends.yml +12 -0
- data/spec/deck_spec.rb +147 -49
- data/spec/input_helpers_spec.rb +117 -0
- data/spec/samples_run_spec.rb +19 -14
- data/spec/spec_helper.rb +3 -0
- data/squib.gemspec +46 -42
- metadata +78 -4
- data/API.md +0 -59
@@ -1,6 +1,6 @@
|
|
1
|
-
require 'squib'
|
2
|
-
|
3
|
-
Squib::Deck.new(cards: 3) do
|
4
|
-
text str: "Hello, World!"
|
5
|
-
save format: :png
|
1
|
+
require 'squib'
|
2
|
+
|
3
|
+
Squib::Deck.new(cards: 3, layout: 'layout.yml') do
|
4
|
+
text str: "Hello, World!"
|
5
|
+
save format: :png
|
6
6
|
end
|
data/lib/squib/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
module Squib
|
2
|
-
|
3
|
-
# The next version to be released.
|
4
|
-
# Uses semantic versioning
|
5
|
-
VERSION = "0.0.
|
6
|
-
end
|
1
|
+
module Squib
|
2
|
+
|
3
|
+
# The next version to be released.
|
4
|
+
# Uses semantic versioning
|
5
|
+
VERSION = "0.0.3"
|
6
|
+
end
|
data/samples/ball.png
ADDED
Binary file
|
data/samples/basic.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'squib'
|
3
|
-
|
4
|
-
data = {'name' => ['Thief', 'Grifter', 'Mastermind'],
|
5
|
-
'level' => [1,2,3]}
|
6
|
-
|
7
|
-
Squib::Deck.new(width: 825, height: 1125, cards: 3) do
|
8
|
-
background color: :white
|
9
|
-
rect x: 38, y: 38, width: 750, height: 1050, radius: 38
|
10
|
-
rect x: 75, y: 75, width: 128, height: 128, radius: 25
|
11
|
-
|
12
|
-
text str: data['name'], x: 220, y: 78, font: 'Arial 54'
|
13
|
-
text str: data['level'], x: 75, y: 85, width: 128,
|
14
|
-
font: 'Arial 72', align: :center
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
save prefix: 'basic_', format: :png
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'squib'
|
3
|
+
|
4
|
+
data = {'name' => ['Thief', 'Grifter', 'Mastermind'],
|
5
|
+
'level' => [1,2,3]}
|
6
|
+
|
7
|
+
Squib::Deck.new(width: 825, height: 1125, cards: 3) do
|
8
|
+
background color: :white
|
9
|
+
rect x: 38, y: 38, width: 750, height: 1050, radius: 38
|
10
|
+
rect x: 75, y: 75, width: 128, height: 128, radius: 25
|
11
|
+
|
12
|
+
text str: data['name'], x: 220, y: 78, font: 'Arial 54'
|
13
|
+
text str: data['level'], x: 75, y: 85, width: 128,
|
14
|
+
font: 'Arial 72', align: :center
|
15
|
+
|
16
|
+
png range: [0,2], file: 'shiny-purse.png', x: 620, y: 75
|
17
|
+
svg range: 1..2, file: 'spanner.svg', x: 620, y: 218
|
18
|
+
|
19
|
+
save prefix: 'basic_', format: :png#, progress_bar: true
|
20
20
|
end
|
data/samples/colors.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
|
-
require 'squib'
|
2
|
-
|
3
|
-
Squib::Deck.new(width: 825, height: 1125, cards: 1) do
|
4
|
-
background color: :white
|
5
|
-
|
6
|
-
y = 0
|
7
|
-
text color: '#f00', str: '3-hex', x: 50, y: y+=50
|
8
|
-
text color: '#f00', str: '3-hex (alpha)', x: 50, y: y+=50
|
9
|
-
text color: '#ff0000', str: '6-hex', x: 50, y: y+=50
|
10
|
-
text color: '#ff000099', str: '8-hex(alpha) *', x: 50, y: y+=50
|
11
|
-
text color: '#ffff00000000', str: '12-hex', x: 50, y: y+=50
|
12
|
-
text color: '#ffff000000009999', str: '12-hex (alpha)', x: 50, y: y+=50
|
13
|
-
text color: :burnt_orange, str: 'Symbols of constants too', x: 50, y: y+=50
|
14
|
-
|
15
|
-
|
16
|
-
save_png prefix: "colors_"
|
1
|
+
require 'squib'
|
2
|
+
|
3
|
+
Squib::Deck.new(width: 825, height: 1125, cards: 1) do
|
4
|
+
background color: :white
|
5
|
+
|
6
|
+
y = 0
|
7
|
+
text color: '#f00', str: '3-hex', x: 50, y: y+=50
|
8
|
+
text color: '#f00', str: '3-hex (alpha)', x: 50, y: y+=50
|
9
|
+
text color: '#ff0000', str: '6-hex', x: 50, y: y+=50
|
10
|
+
text color: '#ff000099', str: '8-hex(alpha) *', x: 50, y: y+=50
|
11
|
+
text color: '#ffff00000000', str: '12-hex', x: 50, y: y+=50
|
12
|
+
text color: '#ffff000000009999', str: '12-hex (alpha)', x: 50, y: y+=50
|
13
|
+
text color: :burnt_orange, str: 'Symbols of constants too', x: 50, y: y+=50
|
14
|
+
|
15
|
+
save_png prefix: "colors_"
|
17
16
|
end
|
data/samples/custom-config.yml
CHANGED
data/samples/custom-layout.yml
CHANGED
@@ -1,34 +1,39 @@
|
|
1
|
-
frame:
|
2
|
-
x: 38
|
3
|
-
y: 38
|
4
|
-
width: 750
|
5
|
-
height: 1050
|
6
|
-
radius: 25
|
7
|
-
title:
|
8
|
-
x: 125
|
9
|
-
y: 50
|
10
|
-
width: 625
|
11
|
-
height: 100
|
12
|
-
align: !ruby/symbol center #see http://www.yaml.org/YAML_for_ruby.html#symbols
|
13
|
-
valign: !ruby/symbol middle
|
14
|
-
subtitle:
|
15
|
-
x: 150
|
16
|
-
y: 150
|
17
|
-
width: 575
|
18
|
-
height: 60
|
19
|
-
align: !ruby/symbol center
|
20
|
-
valign: !ruby/symbol middle
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
1
|
+
frame:
|
2
|
+
x: 38
|
3
|
+
y: 38
|
4
|
+
width: 750
|
5
|
+
height: 1050
|
6
|
+
radius: 25
|
7
|
+
title:
|
8
|
+
x: 125
|
9
|
+
y: 50
|
10
|
+
width: 625
|
11
|
+
height: 100
|
12
|
+
align: !ruby/symbol center #see http://www.yaml.org/YAML_for_ruby.html#symbols
|
13
|
+
valign: !ruby/symbol middle
|
14
|
+
subtitle:
|
15
|
+
x: 150
|
16
|
+
y: 150
|
17
|
+
width: 575
|
18
|
+
height: 60
|
19
|
+
align: !ruby/symbol center
|
20
|
+
valign: !ruby/symbol middle
|
21
|
+
|
22
|
+
# Yaml has this beautfiul feature for us: merge keys
|
23
|
+
# http://www.yaml.org/YAML_for_ruby.html#merge_key
|
24
|
+
# Define an alias with &foo, then use <<: *foo to include it
|
25
|
+
# Everything gets merged, with later merges overriding
|
26
|
+
icon: &icon
|
27
|
+
width: 125
|
28
|
+
height: 125
|
29
|
+
y: 250
|
30
|
+
icon_left:
|
31
|
+
<<: *icon
|
32
|
+
x: 150
|
33
|
+
icon_middle:
|
34
|
+
<<: *icon
|
35
|
+
x: 350
|
36
|
+
y: 400 #overrides the y inherited from icon
|
37
|
+
icon_right:
|
38
|
+
<<: *icon
|
39
|
+
x: 550
|
data/samples/custom_config.rb
CHANGED
@@ -1,6 +1,19 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'squib'
|
3
|
-
|
4
|
-
Squib::Deck.new(config: 'custom-config.yml') do
|
5
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'squib'
|
3
|
+
|
4
|
+
Squib::Deck.new(config: 'custom-config.yml') do
|
5
|
+
# Custom color defined in our config
|
6
|
+
background color: :foo
|
7
|
+
|
8
|
+
# Hints are turned on in the config file
|
9
|
+
text str: "The Title", x: 0, y: 78, width: 825,
|
10
|
+
font: 'Arial 72', align: :center
|
11
|
+
|
12
|
+
# Progress bars are shown for these commands
|
13
|
+
# And images are taken from config-imgdir
|
14
|
+
png file: 'shiny-purse2.png', x: 620, y: 75
|
15
|
+
svg file: 'spanner2.svg', x: 620, y: 218
|
16
|
+
save_png prefix: 'custom-config_'
|
17
|
+
save_pdf file: "custom-config-out.pdf"
|
18
|
+
|
6
19
|
end
|
Binary file
|
@@ -0,0 +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>
|
data/samples/draw_shapes.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
require 'squib'
|
2
|
-
|
3
|
-
Squib::Deck.new do
|
4
|
-
rect x: 300, y: 300, width: 400, height: 400,
|
5
|
-
fill_color: :blue, stroke_color: :red, stroke_width: 50.0
|
6
|
-
|
7
|
-
circle x: 600, y: 600, radius: 75,
|
8
|
-
fill_color: :gray, stroke_color: :green, stroke_width: 8.0
|
9
|
-
|
10
|
-
triangle x1: 50, y1: 50,
|
11
|
-
x2: 150, y2: 150,
|
12
|
-
x3: 75, y3: 250
|
13
|
-
|
14
|
-
line x1: 50, y1: 550,
|
15
|
-
x2: 150, y2: 650,
|
16
|
-
stroke_width: 25.0
|
17
|
-
|
18
|
-
save_png prefix: 'shape_'
|
1
|
+
require 'squib'
|
2
|
+
|
3
|
+
Squib::Deck.new do
|
4
|
+
rect x: 300, y: 300, width: 400, height: 400,
|
5
|
+
fill_color: :blue, stroke_color: :red, stroke_width: 50.0
|
6
|
+
|
7
|
+
circle x: 600, y: 600, radius: 75,
|
8
|
+
fill_color: :gray, stroke_color: :green, stroke_width: 8.0
|
9
|
+
|
10
|
+
triangle x1: 50, y1: 50,
|
11
|
+
x2: 150, y2: 150,
|
12
|
+
x3: 75, y3: 250
|
13
|
+
|
14
|
+
line x1: 50, y1: 550,
|
15
|
+
x2: 150, y2: 650,
|
16
|
+
stroke_width: 25.0
|
17
|
+
|
18
|
+
save_png prefix: 'shape_'
|
19
19
|
end
|
data/samples/excel.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'squib'
|
3
|
-
|
4
|
-
Squib::Deck.new(width: 825, height: 1125, cards: 3) do
|
5
|
-
background color: :white
|
6
|
-
|
7
|
-
# Takes the first sheet by default
|
8
|
-
# Outputs a hash of arrays with the header names as keys
|
9
|
-
data = xlsx file: 'sample.xlsx'
|
10
|
-
|
11
|
-
text str: data['Name'], x: 250, y: 55, font: 'Arial 54'
|
12
|
-
text str: data['Level'], x: 65, y: 65, font: 'Arial 72'
|
13
|
-
text str: data['Description'], x: 65, y: 600, font: 'Arial 36'
|
14
|
-
|
15
|
-
# You can also specify the sheet, starting at 0
|
16
|
-
data = xlsx file: 'sample.xlsx', sheet: 2
|
17
|
-
|
18
|
-
save format: :png, prefix: 'sample_excel_'
|
19
|
-
end
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'squib'
|
3
|
+
|
4
|
+
Squib::Deck.new(width: 825, height: 1125, cards: 3) do
|
5
|
+
background color: :white
|
6
|
+
|
7
|
+
# Takes the first sheet by default
|
8
|
+
# Outputs a hash of arrays with the header names as keys
|
9
|
+
data = xlsx file: 'sample.xlsx'
|
10
|
+
|
11
|
+
text str: data['Name'], x: 250, y: 55, font: 'Arial 54'
|
12
|
+
text str: data['Level'], x: 65, y: 65, font: 'Arial 72'
|
13
|
+
text str: data['Description'], x: 65, y: 600, font: 'Arial 36'
|
14
|
+
|
15
|
+
# You can also specify the sheet, starting at 0
|
16
|
+
data = xlsx file: 'sample.xlsx', sheet: 2
|
17
|
+
|
18
|
+
save format: :png, prefix: 'sample_excel_'
|
19
|
+
end
|
data/samples/grit.png
ADDED
Binary file
|
data/samples/hello_world.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'squib'
|
3
|
-
|
4
|
-
Squib::Deck.new do
|
5
|
-
text str: 'Hello, World!'
|
6
|
-
save_png
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'squib'
|
3
|
+
|
4
|
+
Squib::Deck.new do
|
5
|
+
text str: 'Hello, World!'
|
6
|
+
save_png
|
7
7
|
end
|
data/samples/load_images.rb
CHANGED
@@ -1,19 +1,29 @@
|
|
1
|
-
require 'squib'
|
2
|
-
|
3
|
-
Squib::Deck.new(width: 825, height: 1125, cards: 1) do
|
4
|
-
background color:
|
5
|
-
rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
|
6
|
-
|
7
|
-
png file: 'shiny-purse.png', x: 620, y: 75
|
8
|
-
svg file: 'spanner.svg', x: 620, y: 218
|
9
|
-
|
10
|
-
# SVGs can be scaled too
|
11
|
-
svg file: 'spanner.svg', x: 50, y: 50, width: 250, height: 250
|
12
|
-
|
13
|
-
# We can also limit our rendering to a single object, if the SVG ID is set
|
14
|
-
# Squib prepends a #-sign if one is not specified
|
15
|
-
svg file: 'spanner.svg', id: '#backdrop', x: 50, y: 350, width: 75, height: 75
|
16
|
-
svg file: 'spanner.svg', id: 'backdrop', x: 50, y: 450, width: 125, height: 125
|
17
|
-
|
18
|
-
|
19
|
-
|
1
|
+
require 'squib'
|
2
|
+
|
3
|
+
Squib::Deck.new(width: 825, height: 1125, cards: 1) do
|
4
|
+
background color: '#0b7c8e'
|
5
|
+
rect x: 38, y: 38, width: 750, height: 1050, x_radius: 38, y_radius: 38
|
6
|
+
|
7
|
+
png file: 'shiny-purse.png', x: 620, y: 75
|
8
|
+
svg file: 'spanner.svg', x: 620, y: 218
|
9
|
+
|
10
|
+
# SVGs can be scaled too
|
11
|
+
svg file: 'spanner.svg', x: 50, y: 50, width: 250, height: 250
|
12
|
+
|
13
|
+
# We can also limit our rendering to a single object, if the SVG ID is set
|
14
|
+
# Squib prepends a #-sign if one is not specified
|
15
|
+
svg file: 'spanner.svg', id: '#backdrop', x: 50, y: 350, width: 75, height: 75
|
16
|
+
svg file: 'spanner.svg', id: 'backdrop', x: 50, y: 450, width: 125, height: 125
|
17
|
+
|
18
|
+
# WARNING! If you choose to use the SVG ID, the x-y coordinates are still
|
19
|
+
# relative to the SVG page. See this example in an SVG editor
|
20
|
+
svg file: 'offset.svg', id: 'thing', x: 0, y: 0, width: 600, height: 600
|
21
|
+
|
22
|
+
# Over 15 different blending operators are supported.
|
23
|
+
# See http://cairographics.org/operators
|
24
|
+
# Alpha transparency too
|
25
|
+
png file: 'ball.png', x: 50, y: 700
|
26
|
+
png file: 'grit.png', x: 70, y: 750, blend: :color_burn, alpha: 0.75
|
27
|
+
|
28
|
+
save prefix: 'load_images_', format: :png
|
29
|
+
end
|