squib 0.3.0 → 0.4.0

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/CHANGELOG.md +11 -1
  4. data/README.md +24 -4
  5. data/Rakefile +2 -0
  6. data/benchmarks/antialias_best.rb +13 -0
  7. data/benchmarks/antialias_best.yml +1 -0
  8. data/benchmarks/antialias_fast.rb +13 -0
  9. data/benchmarks/antialias_fast.yml +1 -0
  10. data/benchmarks/backend-memory.rb +14 -0
  11. data/benchmarks/backend-svg.rb +14 -0
  12. data/benchmarks/backend-svg.yml +4 -0
  13. data/lib/squib/api/image.rb +2 -2
  14. data/lib/squib/api/save.rb +3 -3
  15. data/lib/squib/card.rb +23 -4
  16. data/lib/squib/constants.rb +14 -4
  17. data/lib/squib/deck.rb +24 -11
  18. data/lib/squib/graphics/cairo_context_wrapper.rb +2 -1
  19. data/lib/squib/graphics/image.rb +13 -12
  20. data/lib/squib/graphics/save_doc.rb +37 -18
  21. data/lib/squib/graphics/shapes.rb +1 -0
  22. data/lib/squib/project_template/config.yml +8 -1
  23. data/lib/squib/version.rb +1 -1
  24. data/samples/backend-config.yml +5 -0
  25. data/samples/backend.rb +33 -0
  26. data/samples/glass-heart.svg +52 -52
  27. data/samples/load_images.rb +3 -3
  28. data/spec/data/samples/autoscale_font.rb.txt +9 -3
  29. data/spec/data/samples/basic.rb.txt +12 -15
  30. data/spec/data/samples/cairo_access.rb.txt +2 -0
  31. data/spec/data/samples/csv_import.rb.txt +8 -6
  32. data/spec/data/samples/custom_config.rb.txt +10 -7
  33. data/spec/data/samples/draw_shapes.rb.txt +2 -0
  34. data/spec/data/samples/excel.rb.txt +12 -9
  35. data/spec/data/samples/gradients.rb.txt +3 -1
  36. data/spec/data/samples/hello_world.rb.txt +4 -2
  37. data/spec/data/samples/load_images.rb.txt +19 -38
  38. data/spec/data/samples/portrait-landscape.rb.txt +4 -2
  39. data/spec/data/samples/ranges.rb.txt +27 -24
  40. data/spec/data/samples/saves.rb.txt +161 -84
  41. data/spec/data/samples/showcase.rb.txt +13 -21
  42. data/spec/data/samples/text_options.rb.txt +48 -39
  43. data/spec/data/samples/tgc_proofs.rb.txt +5 -7
  44. data/spec/data/samples/units.rb.txt +1 -0
  45. data/spec/deck_spec.rb +1 -1
  46. data/spec/graphics/graphics_images_spec.rb +7 -3
  47. data/spec/graphics/graphics_save_doc_spec.rb +36 -39
  48. data/spec/graphics/graphics_shapes_spec.rb +9 -0
  49. data/spec/graphics/graphics_text_spec.rb +73 -62
  50. data/spec/input_helpers_spec.rb +27 -10
  51. data/spec/spec_helper.rb +12 -9
  52. data/squib.gemspec +2 -2
  53. metadata +27 -17
@@ -1,3 +1,4 @@
1
+ cairo: antialias=(["subpixel"])
1
2
  cairo: save([])
2
3
  cairo: set_source([LinearPattern])
3
4
  cairo: paint([])
@@ -10,6 +11,7 @@ cairo: set_line_width([15])
10
11
  cairo: stroke([])
11
12
  cairo: restore([])
12
13
  cairo: save([])
14
+ cairo: move_to([515, 415])
13
15
  cairo: circle([415, 415, 100])
14
16
  cairo: set_source_color(["#0000"])
15
17
  cairo: set_line_width([2.0])
@@ -51,7 +53,7 @@ cairo: translate([75, 700])
51
53
  cairo: rotate([0])
52
54
  cairo: translate([-75, -700])
53
55
  cairo: move_to([75, 700])
54
- pango: font_description=([])
56
+ pango: font_description=([MockDouble])
55
57
  pango: text=(["Hello, world!"])
56
58
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
57
59
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -1,10 +1,12 @@
1
+ cairo: antialias=(["subpixel"])
2
+ cairo: antialias=(["subpixel"])
1
3
  cairo: save([])
2
4
  cairo: set_source_color([:black])
3
5
  cairo: translate([0, 0])
4
6
  cairo: rotate([0])
5
7
  cairo: translate([0, 0])
6
8
  cairo: move_to([0, 0])
7
- pango: font_description=([])
9
+ pango: font_description=([MockDouble])
8
10
  pango: text=(["Hello"])
9
11
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
10
12
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -21,7 +23,7 @@ cairo: translate([0, 0])
21
23
  cairo: rotate([0])
22
24
  cairo: translate([0, 0])
23
25
  cairo: move_to([0, 0])
24
- pango: font_description=([])
26
+ pango: font_description=([MockDouble])
25
27
  pango: text=(["World!"])
26
28
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
27
29
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -1,3 +1,4 @@
1
+ cairo: antialias=(["subpixel"])
1
2
  cairo: save([])
2
3
  cairo: set_source_color(["#0b7c8e"])
3
4
  cairo: paint([])
@@ -18,23 +19,17 @@ cairo: translate([-620, -75])
18
19
  cairo: set_source([ImageSurface, 620, 75])
19
20
  cairo: paint([1.0])
20
21
  cairo: restore([])
21
- cairo: scale([1.0, 1.0])
22
- cairo: render_rsvg_handle([RSVG::Handle, nil])
23
22
  cairo: save([])
24
23
  cairo: translate([620, 218])
25
24
  cairo: rotate([0])
26
- cairo: translate([-620, -218])
27
- cairo: set_source([MockDouble, 620, 218])
28
- cairo: paint([1.0])
29
- cairo: restore([])
30
- cairo: scale([1.953125, 1.953125])
25
+ cairo: scale([1.0, 1.0])
31
26
  cairo: render_rsvg_handle([RSVG::Handle, nil])
27
+ cairo: restore([])
32
28
  cairo: save([])
33
29
  cairo: translate([50, 50])
34
30
  cairo: rotate([0])
35
- cairo: translate([-50, -50])
36
- cairo: set_source([MockDouble, 50, 50])
37
- cairo: paint([1.0])
31
+ cairo: scale([1.953125, 1.953125])
32
+ cairo: render_rsvg_handle([RSVG::Handle, nil])
38
33
  cairo: restore([])
39
34
  cairo: save([])
40
35
  cairo: translate([305, 50])
@@ -44,32 +39,23 @@ cairo: translate([-305, -50])
44
39
  cairo: set_source([ImageSurface, 305, 50])
45
40
  cairo: paint([1.0])
46
41
  cairo: restore([])
47
- cairo: scale([0.5859375, 0.5859375])
48
- cairo: render_rsvg_handle([RSVG::Handle, "#backdrop"])
49
42
  cairo: save([])
50
43
  cairo: translate([50, 350])
51
44
  cairo: rotate([0])
52
- cairo: translate([-50, -350])
53
- cairo: set_source([MockDouble, 50, 350])
54
- cairo: paint([1.0])
55
- cairo: restore([])
56
- cairo: scale([0.9765625, 0.9765625])
45
+ cairo: scale([0.5859375, 0.5859375])
57
46
  cairo: render_rsvg_handle([RSVG::Handle, "#backdrop"])
47
+ cairo: restore([])
58
48
  cairo: save([])
59
49
  cairo: translate([50, 450])
60
50
  cairo: rotate([0])
61
- cairo: translate([-50, -450])
62
- cairo: set_source([MockDouble, 50, 450])
63
- cairo: paint([1.0])
51
+ cairo: scale([0.9765625, 0.9765625])
52
+ cairo: render_rsvg_handle([RSVG::Handle, "#backdrop"])
64
53
  cairo: restore([])
65
- cairo: scale([0.8021390374331551, 0.8032128514056225])
66
- cairo: render_rsvg_handle([RSVG::Handle, "#thing"])
67
54
  cairo: save([])
68
55
  cairo: translate([0, 0])
69
56
  cairo: rotate([0])
70
- cairo: translate([0, 0])
71
- cairo: set_source([MockDouble, 0, 0])
72
- cairo: paint([1.0])
57
+ cairo: scale([0.8021390374331551, 0.8032128514056225])
58
+ cairo: render_rsvg_handle([RSVG::Handle, "#thing"])
73
59
  cairo: restore([])
74
60
  cairo: save([])
75
61
  cairo: translate([50, 700])
@@ -100,32 +86,27 @@ cairo: translate([-300, -800])
100
86
  cairo: set_source([ImageSurface, 300, 800])
101
87
  cairo: paint([1.0])
102
88
  cairo: restore([])
103
- cairo: scale([1.0, 1.0])
104
- cairo: render_rsvg_handle([RSVG::Handle, nil])
105
89
  cairo: save([])
106
90
  cairo: translate([300, 900])
107
91
  cairo: rotate([1.4707963267948965])
108
- cairo: translate([-300, -900])
109
- cairo: set_source([MockDouble, 300, 900])
110
- cairo: paint([1.0])
111
- cairo: restore([])
112
- cairo: scale([0.390625, 0.390625])
92
+ cairo: scale([1.0, 1.0])
113
93
  cairo: render_rsvg_handle([RSVG::Handle, nil])
94
+ cairo: restore([])
114
95
  cairo: save([])
115
96
  cairo: translate([500, 600])
116
97
  cairo: rotate([0])
117
- cairo: translate([-500, -600])
118
- cairo: set_source_color(["#00ff00"])
119
- cairo: mask([MockDouble, 500, 600])
120
- cairo: restore([])
121
98
  cairo: scale([0.390625, 0.390625])
122
99
  cairo: render_rsvg_handle([RSVG::Handle, nil])
100
+ cairo: set_source_color(["#00ff00"])
101
+ cairo: mask([MockDouble, 0, 0])
102
+ cairo: restore([])
123
103
  cairo: save([])
124
104
  cairo: translate([500, 800])
125
105
  cairo: rotate([0])
126
- cairo: translate([-500, -800])
106
+ cairo: scale([0.390625, 0.390625])
107
+ cairo: render_rsvg_handle([RSVG::Handle, nil])
127
108
  cairo: set_source([LinearPattern])
128
- cairo: mask([MockDouble, 500, 800])
109
+ cairo: mask([MockDouble, 0, 0])
129
110
  cairo: restore([])
130
111
  cairo: save([])
131
112
  cairo: translate([650, 950])
@@ -1,3 +1,4 @@
1
+ cairo: antialias=(["subpixel"])
1
2
  cairo: save([])
2
3
  cairo: set_source_color(["#aaa"])
3
4
  cairo: paint([])
@@ -8,7 +9,7 @@ cairo: translate([0, 0])
8
9
  cairo: rotate([0])
9
10
  cairo: translate([0, 0])
10
11
  cairo: move_to([0, 0])
11
- pango: font_description=([])
12
+ pango: font_description=([MockDouble])
12
13
  pango: text=(["This is portrait"])
13
14
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
14
15
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -20,6 +21,7 @@ cairo: update_pango_layout([MockDouble])
20
21
  cairo: show_pango_layout([MockDouble])
21
22
  cairo: restore([])
22
23
  surface: write_to_png(["_output/portrait_00.png"])
24
+ cairo: antialias=(["subpixel"])
23
25
  cairo: save([])
24
26
  cairo: set_source_color(["#aaa"])
25
27
  cairo: paint([])
@@ -30,7 +32,7 @@ cairo: translate([0, 0])
30
32
  cairo: rotate([0])
31
33
  cairo: translate([0, 0])
32
34
  cairo: move_to([0, 0])
33
- pango: font_description=([])
35
+ pango: font_description=([MockDouble])
34
36
  pango: text=(["This is landscape"])
35
37
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
36
38
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -1,3 +1,6 @@
1
+ cairo: antialias=(["subpixel"])
2
+ cairo: antialias=(["subpixel"])
3
+ cairo: antialias=(["subpixel"])
1
4
  cairo: save([])
2
5
  cairo: set_source_color([:white])
3
6
  cairo: paint([])
@@ -16,7 +19,7 @@ cairo: translate([250, 55])
16
19
  cairo: rotate([0])
17
20
  cairo: translate([-250, -55])
18
21
  cairo: move_to([250, 55])
19
- pango: font_description=([])
22
+ pango: font_description=([MockDouble])
20
23
  pango: text=(["Thief"])
21
24
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
22
25
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -33,7 +36,7 @@ cairo: translate([250, 55])
33
36
  cairo: rotate([0])
34
37
  cairo: translate([-250, -55])
35
38
  cairo: move_to([250, 55])
36
- pango: font_description=([])
39
+ pango: font_description=([MockDouble])
37
40
  pango: text=(["Grifter"])
38
41
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
39
42
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -50,7 +53,7 @@ cairo: translate([250, 55])
50
53
  cairo: rotate([0])
51
54
  cairo: translate([-250, -55])
52
55
  cairo: move_to([250, 55])
53
- pango: font_description=([])
56
+ pango: font_description=([MockDouble])
54
57
  pango: text=(["Mastermind"])
55
58
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
56
59
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -67,7 +70,7 @@ cairo: translate([65, 40])
67
70
  cairo: rotate([0])
68
71
  cairo: translate([-65, -40])
69
72
  cairo: move_to([65, 40])
70
- pango: font_description=([])
73
+ pango: font_description=([MockDouble])
71
74
  pango: text=(["1"])
72
75
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
73
76
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -84,7 +87,7 @@ cairo: translate([65, 40])
84
87
  cairo: rotate([0])
85
88
  cairo: translate([-65, -40])
86
89
  cairo: move_to([65, 40])
87
- pango: font_description=([])
90
+ pango: font_description=([MockDouble])
88
91
  pango: text=(["2"])
89
92
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
90
93
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -101,7 +104,7 @@ cairo: translate([65, 40])
101
104
  cairo: rotate([0])
102
105
  cairo: translate([-65, -40])
103
106
  cairo: move_to([65, 40])
104
- pango: font_description=([])
107
+ pango: font_description=([MockDouble])
105
108
  pango: text=(["3"])
106
109
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
107
110
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -118,7 +121,7 @@ cairo: translate([40, 128])
118
121
  cairo: rotate([0])
119
122
  cairo: translate([-40, -128])
120
123
  cairo: move_to([40, 128])
121
- pango: font_description=([])
124
+ pango: font_description=([MockDouble])
122
125
  pango: text=(["Thug"])
123
126
  pango: width=([102400])
124
127
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
@@ -136,7 +139,7 @@ cairo: translate([40, 128])
136
139
  cairo: rotate([0])
137
140
  cairo: translate([-40, -128])
138
141
  cairo: move_to([40, 128])
139
- pango: font_description=([])
142
+ pango: font_description=([MockDouble])
140
143
  pango: text=(["Thinker"])
141
144
  pango: width=([102400])
142
145
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
@@ -154,7 +157,7 @@ cairo: translate([40, 128])
154
157
  cairo: rotate([0])
155
158
  cairo: translate([-40, -128])
156
159
  cairo: move_to([40, 128])
157
- pango: font_description=([])
160
+ pango: font_description=([MockDouble])
158
161
  pango: text=(["Thinker"])
159
162
  pango: width=([102400])
160
163
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
@@ -172,7 +175,7 @@ cairo: translate([25, 200])
172
175
  cairo: rotate([0])
173
176
  cairo: translate([-25, -200])
174
177
  cairo: move_to([25, 200])
175
- pango: font_description=([])
178
+ pango: font_description=([MockDouble])
176
179
  pango: text=(["Thief and Grifter only!!"])
177
180
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
178
181
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -189,7 +192,7 @@ cairo: translate([25, 200])
189
192
  cairo: rotate([0])
190
193
  cairo: translate([-25, -200])
191
194
  cairo: move_to([25, 200])
192
- pango: font_description=([])
195
+ pango: font_description=([MockDouble])
193
196
  pango: text=(["Thief and Grifter only!!"])
194
197
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
195
198
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -206,7 +209,7 @@ cairo: translate([25, 250])
206
209
  cairo: rotate([0])
207
210
  cairo: translate([-25, -250])
208
211
  cairo: move_to([25, 250])
209
- pango: font_description=([])
212
+ pango: font_description=([MockDouble])
210
213
  pango: text=(["Thief only!"])
211
214
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
212
215
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -223,7 +226,7 @@ cairo: translate([25, 250])
223
226
  cairo: rotate([0])
224
227
  cairo: translate([-25, -250])
225
228
  cairo: move_to([25, 250])
226
- pango: font_description=([])
229
+ pango: font_description=([MockDouble])
227
230
  pango: text=(["Mastermind only!"])
228
231
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
229
232
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -240,7 +243,7 @@ cairo: translate([25, 650])
240
243
  cairo: rotate([0])
241
244
  cairo: translate([-25, -650])
242
245
  cairo: move_to([25, 650])
243
- pango: font_description=([])
246
+ pango: font_description=([MockDouble])
244
247
  pango: text=(["Grifter and Mastermind only!"])
245
248
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
246
249
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -257,7 +260,7 @@ cairo: translate([25, 650])
257
260
  cairo: rotate([0])
258
261
  cairo: translate([-25, -650])
259
262
  cairo: move_to([25, 650])
260
- pango: font_description=([])
263
+ pango: font_description=([MockDouble])
261
264
  pango: text=(["Grifter and Mastermind only!"])
262
265
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
263
266
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -274,7 +277,7 @@ cairo: translate([25, 300])
274
277
  cairo: rotate([0])
275
278
  cairo: translate([-25, -300])
276
279
  cairo: move_to([25, 300])
277
- pango: font_description=([])
280
+ pango: font_description=([MockDouble])
278
281
  pango: text=(["Thief and Mastermind only!!"])
279
282
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
280
283
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -291,7 +294,7 @@ cairo: translate([25, 300])
291
294
  cairo: rotate([0])
292
295
  cairo: translate([-25, -300])
293
296
  cairo: move_to([25, 300])
294
- pango: font_description=([])
297
+ pango: font_description=([MockDouble])
295
298
  pango: text=(["Thief and Mastermind only!!"])
296
299
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
297
300
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -308,7 +311,7 @@ cairo: translate([40, 700])
308
311
  cairo: rotate([0])
309
312
  cairo: translate([-40, -700])
310
313
  cairo: move_to([40, 700])
311
- pango: font_description=([])
314
+ pango: font_description=([MockDouble])
312
315
  pango: text=(["red"])
313
316
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
314
317
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -325,7 +328,7 @@ cairo: translate([80, 750])
325
328
  cairo: rotate([0])
326
329
  cairo: translate([-80, -750])
327
330
  cairo: move_to([80, 750])
328
- pango: font_description=([])
331
+ pango: font_description=([MockDouble])
329
332
  pango: text=(["green"])
330
333
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
331
334
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -342,7 +345,7 @@ cairo: translate([120, 800])
342
345
  cairo: rotate([0])
343
346
  cairo: translate([-120, -800])
344
347
  cairo: move_to([120, 800])
345
- pango: font_description=([])
348
+ pango: font_description=([MockDouble])
346
349
  pango: text=(["blue"])
347
350
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
348
351
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -359,7 +362,7 @@ cairo: translate([25, 400])
359
362
  cairo: rotate([0])
360
363
  cairo: translate([-25, -400])
361
364
  cairo: move_to([25, 400])
362
- pango: font_description=([])
365
+ pango: font_description=([MockDouble])
363
366
  pango: text=(["Thief through Grifter with id lookup!!"])
364
367
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
365
368
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -376,7 +379,7 @@ cairo: translate([25, 400])
376
379
  cairo: rotate([0])
377
380
  cairo: translate([-25, -400])
378
381
  cairo: move_to([25, 400])
379
- pango: font_description=([])
382
+ pango: font_description=([MockDouble])
380
383
  pango: text=(["Thief through Grifter with id lookup!!"])
381
384
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
382
385
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -393,7 +396,7 @@ cairo: translate([25, 500])
393
396
  cairo: rotate([0])
394
397
  cairo: translate([-25, -500])
395
398
  cairo: move_to([25, 500])
396
- pango: font_description=([])
399
+ pango: font_description=([MockDouble])
397
400
  pango: text=(["Only for Thinkers!"])
398
401
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
399
402
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -410,7 +413,7 @@ cairo: translate([25, 500])
410
413
  cairo: rotate([0])
411
414
  cairo: translate([-25, -500])
412
415
  cairo: move_to([25, 500])
413
- pango: font_description=([])
416
+ pango: font_description=([MockDouble])
414
417
  pango: text=(["Only for Thinkers!"])
415
418
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
416
419
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -1,3 +1,19 @@
1
+ cairo: antialias=(["subpixel"])
2
+ cairo: antialias=(["subpixel"])
3
+ cairo: antialias=(["subpixel"])
4
+ cairo: antialias=(["subpixel"])
5
+ cairo: antialias=(["subpixel"])
6
+ cairo: antialias=(["subpixel"])
7
+ cairo: antialias=(["subpixel"])
8
+ cairo: antialias=(["subpixel"])
9
+ cairo: antialias=(["subpixel"])
10
+ cairo: antialias=(["subpixel"])
11
+ cairo: antialias=(["subpixel"])
12
+ cairo: antialias=(["subpixel"])
13
+ cairo: antialias=(["subpixel"])
14
+ cairo: antialias=(["subpixel"])
15
+ cairo: antialias=(["subpixel"])
16
+ cairo: antialias=(["subpixel"])
1
17
  cairo: save([])
2
18
  cairo: set_source_color([:gray])
3
19
  cairo: paint([])
@@ -212,7 +228,7 @@ cairo: translate([220, 78])
212
228
  cairo: rotate([0])
213
229
  cairo: translate([-220, -78])
214
230
  cairo: move_to([220, 78])
215
- pango: font_description=([])
231
+ pango: font_description=([MockDouble])
216
232
  pango: text=(["1"])
217
233
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
218
234
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -229,7 +245,7 @@ cairo: translate([220, 78])
229
245
  cairo: rotate([0])
230
246
  cairo: translate([-220, -78])
231
247
  cairo: move_to([220, 78])
232
- pango: font_description=([])
248
+ pango: font_description=([MockDouble])
233
249
  pango: text=(["2"])
234
250
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
235
251
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -246,7 +262,7 @@ cairo: translate([220, 78])
246
262
  cairo: rotate([0])
247
263
  cairo: translate([-220, -78])
248
264
  cairo: move_to([220, 78])
249
- pango: font_description=([])
265
+ pango: font_description=([MockDouble])
250
266
  pango: text=(["3"])
251
267
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
252
268
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -263,7 +279,7 @@ cairo: translate([220, 78])
263
279
  cairo: rotate([0])
264
280
  cairo: translate([-220, -78])
265
281
  cairo: move_to([220, 78])
266
- pango: font_description=([])
282
+ pango: font_description=([MockDouble])
267
283
  pango: text=(["4"])
268
284
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
269
285
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -280,7 +296,7 @@ cairo: translate([220, 78])
280
296
  cairo: rotate([0])
281
297
  cairo: translate([-220, -78])
282
298
  cairo: move_to([220, 78])
283
- pango: font_description=([])
299
+ pango: font_description=([MockDouble])
284
300
  pango: text=(["5"])
285
301
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
286
302
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -297,7 +313,7 @@ cairo: translate([220, 78])
297
313
  cairo: rotate([0])
298
314
  cairo: translate([-220, -78])
299
315
  cairo: move_to([220, 78])
300
- pango: font_description=([])
316
+ pango: font_description=([MockDouble])
301
317
  pango: text=(["6"])
302
318
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
303
319
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -314,7 +330,7 @@ cairo: translate([220, 78])
314
330
  cairo: rotate([0])
315
331
  cairo: translate([-220, -78])
316
332
  cairo: move_to([220, 78])
317
- pango: font_description=([])
333
+ pango: font_description=([MockDouble])
318
334
  pango: text=(["7"])
319
335
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
320
336
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -331,7 +347,7 @@ cairo: translate([220, 78])
331
347
  cairo: rotate([0])
332
348
  cairo: translate([-220, -78])
333
349
  cairo: move_to([220, 78])
334
- pango: font_description=([])
350
+ pango: font_description=([MockDouble])
335
351
  pango: text=(["8"])
336
352
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
337
353
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -348,7 +364,7 @@ cairo: translate([220, 78])
348
364
  cairo: rotate([0])
349
365
  cairo: translate([-220, -78])
350
366
  cairo: move_to([220, 78])
351
- pango: font_description=([])
367
+ pango: font_description=([MockDouble])
352
368
  pango: text=(["9"])
353
369
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
354
370
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -365,7 +381,7 @@ cairo: translate([220, 78])
365
381
  cairo: rotate([0])
366
382
  cairo: translate([-220, -78])
367
383
  cairo: move_to([220, 78])
368
- pango: font_description=([])
384
+ pango: font_description=([MockDouble])
369
385
  pango: text=(["10"])
370
386
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
371
387
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -382,7 +398,7 @@ cairo: translate([220, 78])
382
398
  cairo: rotate([0])
383
399
  cairo: translate([-220, -78])
384
400
  cairo: move_to([220, 78])
385
- pango: font_description=([])
401
+ pango: font_description=([MockDouble])
386
402
  pango: text=(["11"])
387
403
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
388
404
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -399,7 +415,7 @@ cairo: translate([220, 78])
399
415
  cairo: rotate([0])
400
416
  cairo: translate([-220, -78])
401
417
  cairo: move_to([220, 78])
402
- pango: font_description=([])
418
+ pango: font_description=([MockDouble])
403
419
  pango: text=(["12"])
404
420
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
405
421
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -416,7 +432,7 @@ cairo: translate([220, 78])
416
432
  cairo: rotate([0])
417
433
  cairo: translate([-220, -78])
418
434
  cairo: move_to([220, 78])
419
- pango: font_description=([])
435
+ pango: font_description=([MockDouble])
420
436
  pango: text=(["13"])
421
437
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
422
438
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -433,7 +449,7 @@ cairo: translate([220, 78])
433
449
  cairo: rotate([0])
434
450
  cairo: translate([-220, -78])
435
451
  cairo: move_to([220, 78])
436
- pango: font_description=([])
452
+ pango: font_description=([MockDouble])
437
453
  pango: text=(["14"])
438
454
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
439
455
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -450,7 +466,7 @@ cairo: translate([220, 78])
450
466
  cairo: rotate([0])
451
467
  cairo: translate([-220, -78])
452
468
  cairo: move_to([220, 78])
453
- pango: font_description=([])
469
+ pango: font_description=([MockDouble])
454
470
  pango: text=(["15"])
455
471
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
456
472
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -467,7 +483,7 @@ cairo: translate([220, 78])
467
483
  cairo: rotate([0])
468
484
  cairo: translate([-220, -78])
469
485
  cairo: move_to([220, 78])
470
- pango: font_description=([])
486
+ pango: font_description=([MockDouble])
471
487
  pango: text=(["16"])
472
488
  pango: wrap=([#<Pango::Layout::WrapMode word-char>])
473
489
  pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
@@ -478,74 +494,135 @@ cairo: update_pango_layout([MockDouble])
478
494
  cairo: update_pango_layout([MockDouble])
479
495
  cairo: show_pango_layout([MockDouble])
480
496
  cairo: restore([])
481
- cairo: set_source([MockDouble, -37, -37])
482
- cairo: paint([])
483
- cairo: set_source([MockDouble, 75, 75])
484
- cairo: paint([])
485
- cairo: set_source([MockDouble, -37, -37])
486
- cairo: paint([])
487
- cairo: set_source([MockDouble, 180, 75])
488
- cairo: paint([])
489
- cairo: set_source([MockDouble, -37, -37])
490
- cairo: paint([])
491
- cairo: set_source([MockDouble, 285, 75])
492
- cairo: paint([])
493
- cairo: set_source([MockDouble, -37, -37])
494
- cairo: paint([])
495
- cairo: set_source([MockDouble, 390, 75])
496
- cairo: paint([])
497
- cairo: set_source([MockDouble, -37, -37])
498
- cairo: paint([])
499
- cairo: set_source([MockDouble, 495, 75])
500
- cairo: paint([])
501
- cairo: set_source([MockDouble, -37, -37])
502
- cairo: paint([])
503
- cairo: set_source([MockDouble, 600, 75])
504
- cairo: paint([])
505
- cairo: set_source([MockDouble, -37, -37])
506
- cairo: paint([])
507
- cairo: set_source([MockDouble, 705, 75])
508
- cairo: paint([])
509
- cairo: set_source([MockDouble, -37, -37])
510
- cairo: paint([])
511
- cairo: set_source([MockDouble, 810, 75])
512
- cairo: paint([])
513
- cairo: set_source([MockDouble, -37, -37])
514
- cairo: paint([])
515
- cairo: set_source([MockDouble, 915, 75])
516
- cairo: paint([])
517
- cairo: set_source([MockDouble, -37, -37])
518
- cairo: paint([])
519
- cairo: set_source([MockDouble, 1020, 75])
520
- cairo: paint([])
521
- cairo: set_source([MockDouble, -37, -37])
522
- cairo: paint([])
523
- cairo: set_source([MockDouble, 1125, 75])
524
- cairo: paint([])
525
- cairo: set_source([MockDouble, -37, -37])
526
- cairo: paint([])
527
- cairo: set_source([MockDouble, 1230, 75])
528
- cairo: paint([])
529
- cairo: set_source([MockDouble, -37, -37])
530
- cairo: paint([])
531
- cairo: set_source([MockDouble, 1335, 75])
532
- cairo: paint([])
533
- cairo: set_source([MockDouble, -37, -37])
534
- cairo: paint([])
535
- cairo: set_source([MockDouble, 1440, 75])
536
- cairo: paint([])
537
- cairo: set_source([MockDouble, -37, -37])
538
- cairo: paint([])
539
- cairo: set_source([MockDouble, 1545, 75])
540
- cairo: paint([])
541
- cairo: set_source([MockDouble, -37, -37])
542
- cairo: paint([])
543
- cairo: set_source([MockDouble, 1650, 75])
544
- cairo: paint([])
545
- cairo: set_source([MockDouble, 75, 75])
546
- cairo: paint([])
547
- cairo: set_source([MockDouble, 175, 75])
548
- cairo: paint([])
497
+ cairo: translate([75, 75])
498
+ cairo: rectangle([37, 37, 751, 1051])
499
+ cairo: clip([])
500
+ cairo: set_source([MockDouble, 0, 0])
501
+ cairo: paint([])
502
+ cairo: reset_clip([])
503
+ cairo: translate([-75, -75])
504
+ cairo: translate([831, 75])
505
+ cairo: rectangle([37, 37, 751, 1051])
506
+ cairo: clip([])
507
+ cairo: set_source([MockDouble, 0, 0])
508
+ cairo: paint([])
509
+ cairo: reset_clip([])
510
+ cairo: translate([-831, -75])
511
+ cairo: translate([1587, 75])
512
+ cairo: rectangle([37, 37, 751, 1051])
513
+ cairo: clip([])
514
+ cairo: set_source([MockDouble, 0, 0])
515
+ cairo: paint([])
516
+ cairo: reset_clip([])
517
+ cairo: translate([-1587, -75])
518
+ cairo: translate([2343, 75])
519
+ cairo: rectangle([37, 37, 751, 1051])
520
+ cairo: clip([])
521
+ cairo: set_source([MockDouble, 0, 0])
522
+ cairo: paint([])
523
+ cairo: reset_clip([])
524
+ cairo: translate([-2343, -75])
525
+ cairo: translate([75, 1131])
526
+ cairo: rectangle([37, 37, 751, 1051])
527
+ cairo: clip([])
528
+ cairo: set_source([MockDouble, 0, 0])
529
+ cairo: paint([])
530
+ cairo: reset_clip([])
531
+ cairo: translate([-75, -1131])
532
+ cairo: translate([831, 1131])
533
+ cairo: rectangle([37, 37, 751, 1051])
534
+ cairo: clip([])
535
+ cairo: set_source([MockDouble, 0, 0])
536
+ cairo: paint([])
537
+ cairo: reset_clip([])
538
+ cairo: translate([-831, -1131])
539
+ cairo: translate([1587, 1131])
540
+ cairo: rectangle([37, 37, 751, 1051])
541
+ cairo: clip([])
542
+ cairo: set_source([MockDouble, 0, 0])
543
+ cairo: paint([])
544
+ cairo: reset_clip([])
545
+ cairo: translate([-1587, -1131])
546
+ cairo: translate([2343, 1131])
547
+ cairo: rectangle([37, 37, 751, 1051])
548
+ cairo: clip([])
549
+ cairo: set_source([MockDouble, 0, 0])
550
+ cairo: paint([])
551
+ cairo: reset_clip([])
552
+ cairo: translate([-2343, -1131])
553
+ cairo: show_page([])
554
+ cairo: translate([75, 75])
555
+ cairo: rectangle([37, 37, 751, 1051])
556
+ cairo: clip([])
557
+ cairo: set_source([MockDouble, 0, 0])
558
+ cairo: paint([])
559
+ cairo: reset_clip([])
560
+ cairo: translate([-75, -75])
561
+ cairo: translate([831, 75])
562
+ cairo: rectangle([37, 37, 751, 1051])
563
+ cairo: clip([])
564
+ cairo: set_source([MockDouble, 0, 0])
565
+ cairo: paint([])
566
+ cairo: reset_clip([])
567
+ cairo: translate([-831, -75])
568
+ cairo: translate([1587, 75])
569
+ cairo: rectangle([37, 37, 751, 1051])
570
+ cairo: clip([])
571
+ cairo: set_source([MockDouble, 0, 0])
572
+ cairo: paint([])
573
+ cairo: reset_clip([])
574
+ cairo: translate([-1587, -75])
575
+ cairo: translate([2343, 75])
576
+ cairo: rectangle([37, 37, 751, 1051])
577
+ cairo: clip([])
578
+ cairo: set_source([MockDouble, 0, 0])
579
+ cairo: paint([])
580
+ cairo: reset_clip([])
581
+ cairo: translate([-2343, -75])
582
+ cairo: translate([75, 1131])
583
+ cairo: rectangle([37, 37, 751, 1051])
584
+ cairo: clip([])
585
+ cairo: set_source([MockDouble, 0, 0])
586
+ cairo: paint([])
587
+ cairo: reset_clip([])
588
+ cairo: translate([-75, -1131])
589
+ cairo: translate([831, 1131])
590
+ cairo: rectangle([37, 37, 751, 1051])
591
+ cairo: clip([])
592
+ cairo: set_source([MockDouble, 0, 0])
593
+ cairo: paint([])
594
+ cairo: reset_clip([])
595
+ cairo: translate([-831, -1131])
596
+ cairo: translate([1587, 1131])
597
+ cairo: rectangle([37, 37, 751, 1051])
598
+ cairo: clip([])
599
+ cairo: set_source([MockDouble, 0, 0])
600
+ cairo: paint([])
601
+ cairo: reset_clip([])
602
+ cairo: translate([-1587, -1131])
603
+ cairo: translate([2343, 1131])
604
+ cairo: rectangle([37, 37, 751, 1051])
605
+ cairo: clip([])
606
+ cairo: set_source([MockDouble, 0, 0])
607
+ cairo: paint([])
608
+ cairo: reset_clip([])
609
+ cairo: translate([-2343, -1131])
610
+ cairo: show_page([])
611
+ cairo: translate([75, 75])
612
+ cairo: rectangle([0, 0, 825, 1125])
613
+ cairo: clip([])
614
+ cairo: set_source([MockDouble, 0, 0])
615
+ cairo: paint([])
616
+ cairo: reset_clip([])
617
+ cairo: translate([-75, -75])
618
+ cairo: translate([900, 75])
619
+ cairo: rectangle([0, 0, 825, 1125])
620
+ cairo: clip([])
621
+ cairo: set_source([MockDouble, 0, 0])
622
+ cairo: paint([])
623
+ cairo: reset_clip([])
624
+ cairo: translate([-900, -75])
625
+ cairo: show_page([])
549
626
  surface: write_to_png(["_output/saves_notrim_01.png"])
550
627
  cairo: set_source([MockDouble, -37, -37])
551
628
  cairo: paint([])