squib 0.6.0 → 0.7.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +162 -133
- data/Gemfile +4 -4
- data/README.md +630 -550
- data/RELEASE TODO.md +18 -18
- data/Rakefile +99 -99
- data/lib/squib.rb +32 -32
- data/lib/squib/api/background.rb +20 -19
- data/lib/squib/api/data.rb +100 -99
- data/lib/squib/api/image.rb +90 -76
- data/lib/squib/api/save.rb +149 -103
- data/lib/squib/api/settings.rb +35 -37
- data/lib/squib/api/shapes.rb +230 -228
- data/lib/squib/api/text.rb +65 -66
- data/lib/squib/api/text_embed.rb +96 -66
- data/lib/squib/args/arg_loader.rb +138 -0
- data/lib/squib/args/box.rb +55 -0
- data/lib/squib/args/card_range.rb +32 -0
- data/lib/squib/args/color_validator.rb +12 -0
- data/lib/squib/args/coords.rb +33 -0
- data/lib/squib/args/dir_validator.rb +16 -0
- data/lib/squib/args/draw.rb +92 -0
- data/lib/squib/args/embed_adjust.rb +25 -0
- data/lib/squib/args/embed_key.rb +17 -0
- data/lib/squib/args/hand_special.rb +37 -0
- data/lib/squib/args/input_file.rb +37 -0
- data/lib/squib/args/paint.rb +44 -0
- data/lib/squib/args/paragraph.rb +115 -0
- data/lib/squib/args/save_batch.rb +60 -0
- data/lib/squib/args/scale_box.rb +53 -0
- data/lib/squib/args/sheet.rb +72 -0
- data/lib/squib/args/showcase_special.rb +38 -0
- data/lib/squib/args/svg_special.rb +37 -0
- data/lib/squib/args/transform.rb +25 -0
- data/lib/squib/args/typographer.rb +117 -117
- data/lib/squib/card.rb +67 -67
- data/lib/squib/conf.rb +117 -111
- data/lib/squib/constants.rb +178 -178
- data/lib/squib/deck.rb +113 -111
- data/lib/squib/graphics/cairo_context_wrapper.rb +99 -53
- data/lib/squib/graphics/gradient_regex.rb +46 -46
- data/lib/squib/graphics/hand.rb +42 -43
- data/lib/squib/graphics/image.rb +76 -73
- data/lib/squib/graphics/save_doc.rb +103 -137
- data/lib/squib/graphics/save_images.rb +33 -33
- data/lib/squib/graphics/shapes.rb +119 -152
- data/lib/squib/graphics/showcase.rb +85 -88
- data/lib/squib/graphics/text.rb +176 -216
- data/lib/squib/layout_parser.rb +91 -89
- data/lib/squib/layouts/economy.yml +85 -0
- data/lib/squib/layouts/fantasy.yml +101 -0
- data/lib/squib/layouts/hand.yml +62 -46
- data/lib/squib/layouts/playing-card.yml +35 -18
- data/lib/squib/project_template/config.yml +45 -40
- data/lib/squib/version.rb +10 -10
- data/samples/color_shortcuts.rb +6 -0
- data/samples/csv_import.rb +18 -18
- data/samples/custom-config.yml +5 -5
- data/samples/custom_config.rb +18 -18
- data/samples/draw_shapes.rb +45 -35
- data/samples/embed_text.rb +88 -90
- data/samples/hand.rb +24 -24
- data/samples/layouts.rb +62 -61
- data/samples/layouts_builtin.rb +51 -0
- data/samples/load_images.rb +78 -64
- data/samples/ranges.rb +64 -53
- data/samples/sample.csv +2 -2
- data/samples/text_options.rb +102 -94
- data/spec/api/api_data_spec.rb +57 -50
- data/spec/api/api_settings_spec.rb +37 -17
- data/spec/args/box_spec.rb +127 -0
- data/spec/args/draw_spec.rb +95 -0
- data/spec/args/embed_key_spec.rb +13 -0
- data/spec/args/input_file_spec.rb +21 -0
- data/spec/args/paint_spec.rb +22 -0
- data/spec/args/paragraph_spec.rb +153 -0
- data/spec/args/range_spec.rb +36 -0
- data/spec/args/save_batch_spec.rb +51 -0
- data/spec/args/scale_box_spec.rb +71 -0
- data/spec/args/sheet_spec.rb +58 -0
- data/spec/args/showcase_special_spec.rb +15 -0
- data/spec/data/samples/autoscale_font.rb.txt +84 -87
- data/spec/data/samples/basic.rb.txt +209 -203
- data/spec/data/samples/cairo_access.rb.txt +2 -2
- data/spec/data/samples/config_text_markup.rb.txt +72 -75
- data/spec/data/samples/csv_import.rb.txt +76 -80
- data/spec/data/samples/custom_config.rb.txt +48 -49
- data/spec/data/samples/draw_shapes.rb.txt +100 -42
- data/spec/data/samples/embed_text.rb.txt +283 -295
- data/spec/data/samples/excel.rb.txt +162 -171
- data/spec/data/samples/gradients.rb.txt +79 -67
- data/spec/data/samples/hand.rb.txt +538 -514
- data/spec/data/samples/hello_world.rb.txt +36 -38
- data/spec/data/samples/load_images.rb.txt +41 -5
- data/spec/data/samples/portrait-landscape.rb.txt +49 -51
- data/spec/data/samples/ranges.rb.txt +460 -429
- data/spec/data/samples/saves.rb.txt +801 -785
- data/spec/data/samples/showcase.rb.txt +5910 -5906
- data/spec/data/samples/text_options.rb.txt +1125 -981
- data/spec/data/samples/tgc_proofs.rb.txt +81 -79
- data/spec/data/samples/units.rb.txt +18 -12
- data/spec/data/xlsx/with_macros.xlsm +0 -0
- data/spec/graphics/cairo_context_wrapper_spec.rb +84 -75
- data/spec/graphics/graphics_images_spec.rb +94 -85
- data/spec/graphics/graphics_save_doc_spec.rb +67 -65
- data/spec/samples/expected/hand.png +0 -0
- data/spec/samples/expected/hand_pretty.png +0 -0
- data/spec/samples/expected/layout_00.png +0 -0
- data/spec/samples/expected/load_images_00.png +0 -0
- data/spec/samples/expected/ranges_00.png +0 -0
- data/spec/samples/expected/shape_00.png +0 -0
- data/spec/samples/expected/showcase.png +0 -0
- data/spec/samples/expected/showcase2.png +0 -0
- data/spec/samples/expected/showcase_individual_00.png +0 -0
- data/spec/samples/expected/showcase_individual_01.png +0 -0
- data/spec/samples/expected/showcase_individual_02.png +0 -0
- data/spec/samples/expected/showcase_individual_03.png +0 -0
- data/spec/samples/expected/text_00.png +0 -0
- data/spec/samples/expected/text_01.png +0 -0
- data/spec/samples/expected/text_02.png +0 -0
- data/spec/samples/samples_regression_spec.rb +82 -82
- data/spec/spec_helper.rb +3 -2
- data/squib.gemspec +48 -48
- data/squib.sublime-project +42 -36
- metadata +61 -33
- data/lib/squib/input_helpers.rb +0 -238
- data/spec/api/api_image_spec.rb +0 -38
- data/spec/api/api_text_spec.rb +0 -37
- data/spec/graphics/graphics_shapes_spec.rb +0 -85
- data/spec/graphics/graphics_text_spec.rb +0 -164
- data/spec/input_helpers_spec.rb +0 -238
- data/spec/samples/expected/embed_multi_00.png +0 -0
- data/spec/samples/expected/embed_multi_01.png +0 -0
- data/spec/samples/expected/embed_multi_02.png +0 -0
- data/spec/samples/expected/ranges_01.png +0 -0
- data/spec/samples/expected/ranges_02.png +0 -0
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: squib
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andy Meneely
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-09-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cairo
|
|
@@ -16,56 +16,56 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ~>
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.14.
|
|
19
|
+
version: 1.14.3
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ~>
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.14.
|
|
26
|
+
version: 1.14.3
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: pango
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ~>
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: 3.0.1
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ~>
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
40
|
+
version: 3.0.1
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: roo
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - ~>
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 2.
|
|
47
|
+
version: 2.1.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ~>
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 2.
|
|
54
|
+
version: 2.1.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rsvg2
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ~>
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 3.0.0
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - ~>
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 3.0.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: mercenary
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,14 +128,14 @@ dependencies:
|
|
|
128
128
|
requirements:
|
|
129
129
|
- - ~>
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '3.
|
|
131
|
+
version: '3.3'
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - ~>
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '3.
|
|
138
|
+
version: '3.3'
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: redcarpet
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -232,6 +232,7 @@ extra_rdoc_files:
|
|
|
232
232
|
- samples/basic.rb
|
|
233
233
|
- samples/cairo_access.rb
|
|
234
234
|
- samples/colors.rb
|
|
235
|
+
- samples/color_shortcuts.rb
|
|
235
236
|
- samples/config_text_markup.rb
|
|
236
237
|
- samples/csv_import.rb
|
|
237
238
|
- samples/custom_config.rb
|
|
@@ -242,6 +243,7 @@ extra_rdoc_files:
|
|
|
242
243
|
- samples/hand.rb
|
|
243
244
|
- samples/hello_world.rb
|
|
244
245
|
- samples/layouts.rb
|
|
246
|
+
- samples/layouts_builtin.rb
|
|
245
247
|
- samples/load_images.rb
|
|
246
248
|
- samples/portrait-landscape.rb
|
|
247
249
|
- samples/ranges.rb
|
|
@@ -285,6 +287,25 @@ files:
|
|
|
285
287
|
- lib/squib/api/text.rb
|
|
286
288
|
- lib/squib/api/text_embed.rb
|
|
287
289
|
- lib/squib/api/units.rb
|
|
290
|
+
- lib/squib/args/arg_loader.rb
|
|
291
|
+
- lib/squib/args/box.rb
|
|
292
|
+
- lib/squib/args/card_range.rb
|
|
293
|
+
- lib/squib/args/color_validator.rb
|
|
294
|
+
- lib/squib/args/coords.rb
|
|
295
|
+
- lib/squib/args/dir_validator.rb
|
|
296
|
+
- lib/squib/args/draw.rb
|
|
297
|
+
- lib/squib/args/embed_adjust.rb
|
|
298
|
+
- lib/squib/args/embed_key.rb
|
|
299
|
+
- lib/squib/args/hand_special.rb
|
|
300
|
+
- lib/squib/args/input_file.rb
|
|
301
|
+
- lib/squib/args/paint.rb
|
|
302
|
+
- lib/squib/args/paragraph.rb
|
|
303
|
+
- lib/squib/args/save_batch.rb
|
|
304
|
+
- lib/squib/args/scale_box.rb
|
|
305
|
+
- lib/squib/args/sheet.rb
|
|
306
|
+
- lib/squib/args/showcase_special.rb
|
|
307
|
+
- lib/squib/args/svg_special.rb
|
|
308
|
+
- lib/squib/args/transform.rb
|
|
288
309
|
- lib/squib/args/typographer.rb
|
|
289
310
|
- lib/squib/args/unit_conversion.rb
|
|
290
311
|
- lib/squib/card.rb
|
|
@@ -302,8 +323,9 @@ files:
|
|
|
302
323
|
- lib/squib/graphics/shapes.rb
|
|
303
324
|
- lib/squib/graphics/showcase.rb
|
|
304
325
|
- lib/squib/graphics/text.rb
|
|
305
|
-
- lib/squib/input_helpers.rb
|
|
306
326
|
- lib/squib/layout_parser.rb
|
|
327
|
+
- lib/squib/layouts/economy.yml
|
|
328
|
+
- lib/squib/layouts/fantasy.yml
|
|
307
329
|
- lib/squib/layouts/hand.yml
|
|
308
330
|
- lib/squib/layouts/playing-card.yml
|
|
309
331
|
- lib/squib/progress.rb
|
|
@@ -324,6 +346,7 @@ files:
|
|
|
324
346
|
- samples/ball.png
|
|
325
347
|
- samples/basic.rb
|
|
326
348
|
- samples/cairo_access.rb
|
|
349
|
+
- samples/color_shortcuts.rb
|
|
327
350
|
- samples/colors.rb
|
|
328
351
|
- samples/config_disable_quotes.yml
|
|
329
352
|
- samples/config_text_markup.rb
|
|
@@ -344,6 +367,7 @@ files:
|
|
|
344
367
|
- samples/hand.rb
|
|
345
368
|
- samples/hello_world.rb
|
|
346
369
|
- samples/layouts.rb
|
|
370
|
+
- samples/layouts_builtin.rb
|
|
347
371
|
- samples/load_images.rb
|
|
348
372
|
- samples/offset.svg
|
|
349
373
|
- samples/pokercard.png
|
|
@@ -360,9 +384,18 @@ files:
|
|
|
360
384
|
- samples/unicode.rb
|
|
361
385
|
- samples/units.rb
|
|
362
386
|
- spec/api/api_data_spec.rb
|
|
363
|
-
- spec/api/api_image_spec.rb
|
|
364
387
|
- spec/api/api_settings_spec.rb
|
|
365
|
-
- spec/
|
|
388
|
+
- spec/args/box_spec.rb
|
|
389
|
+
- spec/args/draw_spec.rb
|
|
390
|
+
- spec/args/embed_key_spec.rb
|
|
391
|
+
- spec/args/input_file_spec.rb
|
|
392
|
+
- spec/args/paint_spec.rb
|
|
393
|
+
- spec/args/paragraph_spec.rb
|
|
394
|
+
- spec/args/range_spec.rb
|
|
395
|
+
- spec/args/save_batch_spec.rb
|
|
396
|
+
- spec/args/scale_box_spec.rb
|
|
397
|
+
- spec/args/sheet_spec.rb
|
|
398
|
+
- spec/args/showcase_special_spec.rb
|
|
366
399
|
- spec/args/typographer_spec.rb
|
|
367
400
|
- spec/args/unit_conversion_spec.rb
|
|
368
401
|
- spec/commands/new_spec.rb
|
|
@@ -412,13 +445,11 @@ files:
|
|
|
412
445
|
- spec/data/samples/units.rb.txt
|
|
413
446
|
- spec/data/xlsx/basic.xlsx
|
|
414
447
|
- spec/data/xlsx/formulas.xlsx
|
|
448
|
+
- spec/data/xlsx/with_macros.xlsm
|
|
415
449
|
- spec/deck_spec.rb
|
|
416
450
|
- spec/graphics/cairo_context_wrapper_spec.rb
|
|
417
451
|
- spec/graphics/graphics_images_spec.rb
|
|
418
452
|
- spec/graphics/graphics_save_doc_spec.rb
|
|
419
|
-
- spec/graphics/graphics_shapes_spec.rb
|
|
420
|
-
- spec/graphics/graphics_text_spec.rb
|
|
421
|
-
- spec/input_helpers_spec.rb
|
|
422
453
|
- spec/layout_parser_spec.rb
|
|
423
454
|
- spec/logger_spec.rb
|
|
424
455
|
- spec/samples/_diffs/gitkeep.txt
|
|
@@ -441,9 +472,6 @@ files:
|
|
|
441
472
|
- spec/samples/expected/config_text_00.png
|
|
442
473
|
- spec/samples/expected/custom-config_00.png
|
|
443
474
|
- spec/samples/expected/embed_00.png
|
|
444
|
-
- spec/samples/expected/embed_multi_00.png
|
|
445
|
-
- spec/samples/expected/embed_multi_01.png
|
|
446
|
-
- spec/samples/expected/embed_multi_02.png
|
|
447
475
|
- spec/samples/expected/embed_multisheet_00.png
|
|
448
476
|
- spec/samples/expected/gitkeep.txt
|
|
449
477
|
- spec/samples/expected/gradient_00.png
|
|
@@ -457,8 +485,6 @@ files:
|
|
|
457
485
|
- spec/samples/expected/load_images_00.png
|
|
458
486
|
- spec/samples/expected/portrait_00.png
|
|
459
487
|
- spec/samples/expected/ranges_00.png
|
|
460
|
-
- spec/samples/expected/ranges_01.png
|
|
461
|
-
- spec/samples/expected/ranges_02.png
|
|
462
488
|
- spec/samples/expected/sample_csv_00.png
|
|
463
489
|
- spec/samples/expected/sample_csv_01.png
|
|
464
490
|
- spec/samples/expected/sample_excel_00.png
|
|
@@ -515,9 +541,18 @@ specification_version: 2
|
|
|
515
541
|
summary: A Ruby DSL for prototyping card games
|
|
516
542
|
test_files:
|
|
517
543
|
- spec/api/api_data_spec.rb
|
|
518
|
-
- spec/api/api_image_spec.rb
|
|
519
544
|
- spec/api/api_settings_spec.rb
|
|
520
|
-
- spec/
|
|
545
|
+
- spec/args/box_spec.rb
|
|
546
|
+
- spec/args/draw_spec.rb
|
|
547
|
+
- spec/args/embed_key_spec.rb
|
|
548
|
+
- spec/args/input_file_spec.rb
|
|
549
|
+
- spec/args/paint_spec.rb
|
|
550
|
+
- spec/args/paragraph_spec.rb
|
|
551
|
+
- spec/args/range_spec.rb
|
|
552
|
+
- spec/args/save_batch_spec.rb
|
|
553
|
+
- spec/args/scale_box_spec.rb
|
|
554
|
+
- spec/args/sheet_spec.rb
|
|
555
|
+
- spec/args/showcase_special_spec.rb
|
|
521
556
|
- spec/args/typographer_spec.rb
|
|
522
557
|
- spec/args/unit_conversion_spec.rb
|
|
523
558
|
- spec/commands/new_spec.rb
|
|
@@ -567,13 +602,11 @@ test_files:
|
|
|
567
602
|
- spec/data/samples/units.rb.txt
|
|
568
603
|
- spec/data/xlsx/basic.xlsx
|
|
569
604
|
- spec/data/xlsx/formulas.xlsx
|
|
605
|
+
- spec/data/xlsx/with_macros.xlsm
|
|
570
606
|
- spec/deck_spec.rb
|
|
571
607
|
- spec/graphics/cairo_context_wrapper_spec.rb
|
|
572
608
|
- spec/graphics/graphics_images_spec.rb
|
|
573
609
|
- spec/graphics/graphics_save_doc_spec.rb
|
|
574
|
-
- spec/graphics/graphics_shapes_spec.rb
|
|
575
|
-
- spec/graphics/graphics_text_spec.rb
|
|
576
|
-
- spec/input_helpers_spec.rb
|
|
577
610
|
- spec/layout_parser_spec.rb
|
|
578
611
|
- spec/logger_spec.rb
|
|
579
612
|
- spec/samples/_diffs/gitkeep.txt
|
|
@@ -596,9 +629,6 @@ test_files:
|
|
|
596
629
|
- spec/samples/expected/config_text_00.png
|
|
597
630
|
- spec/samples/expected/custom-config_00.png
|
|
598
631
|
- spec/samples/expected/embed_00.png
|
|
599
|
-
- spec/samples/expected/embed_multi_00.png
|
|
600
|
-
- spec/samples/expected/embed_multi_01.png
|
|
601
|
-
- spec/samples/expected/embed_multi_02.png
|
|
602
632
|
- spec/samples/expected/embed_multisheet_00.png
|
|
603
633
|
- spec/samples/expected/gitkeep.txt
|
|
604
634
|
- spec/samples/expected/gradient_00.png
|
|
@@ -612,8 +642,6 @@ test_files:
|
|
|
612
642
|
- spec/samples/expected/load_images_00.png
|
|
613
643
|
- spec/samples/expected/portrait_00.png
|
|
614
644
|
- spec/samples/expected/ranges_00.png
|
|
615
|
-
- spec/samples/expected/ranges_01.png
|
|
616
|
-
- spec/samples/expected/ranges_02.png
|
|
617
645
|
- spec/samples/expected/sample_csv_00.png
|
|
618
646
|
- spec/samples/expected/sample_csv_01.png
|
|
619
647
|
- spec/samples/expected/sample_excel_00.png
|
data/lib/squib/input_helpers.rb
DELETED
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
require 'squib/constants'
|
|
2
|
-
require 'squib/args/unit_conversion'
|
|
3
|
-
|
|
4
|
-
module Squib
|
|
5
|
-
# :nodoc:
|
|
6
|
-
# @api private
|
|
7
|
-
module InputHelpers
|
|
8
|
-
|
|
9
|
-
# :nodoc:
|
|
10
|
-
# @api private
|
|
11
|
-
def needs(opts, params)
|
|
12
|
-
Squib.logger.debug {"Method #{caller(1,1)} was given the following opts: #{opts}"}
|
|
13
|
-
opts = layoutify(opts) if params.include? :layout
|
|
14
|
-
opts = Squib::SYSTEM_DEFAULTS.merge(opts)
|
|
15
|
-
opts = expand_singletons(opts, params)
|
|
16
|
-
opts = rangeify(opts) if params.include? :range
|
|
17
|
-
opts = fileify(opts) if params.include? :file
|
|
18
|
-
opts = fileify(opts, false) if params.include? :file_to_save
|
|
19
|
-
opts = colorify(opts, true) if params.include? :nillable_color
|
|
20
|
-
opts = dirify(opts, :dir, true) if params.include? :creatable_dir
|
|
21
|
-
opts = dirify(opts, :img_dir, false) if params.include? :img_dir
|
|
22
|
-
opts = fileify(opts, false) if params.include? :files
|
|
23
|
-
opts = colorify(opts) if params.include? :color
|
|
24
|
-
opts = colorify(opts, false, :fill_color) if params.include? :fill_color
|
|
25
|
-
opts = colorify(opts, false, :stroke_color) if params.include? :stroke_color
|
|
26
|
-
opts = fontify(opts) if params.include? :font
|
|
27
|
-
opts = radiusify(opts) if params.include? :rect_radius
|
|
28
|
-
opts = svgidify(opts) if params.include? :svgid
|
|
29
|
-
opts = formatify(opts) if params.include? :formats
|
|
30
|
-
opts = rotateify(opts) if params.include? :rotate
|
|
31
|
-
opts = rowify(opts) if params.include? :rows
|
|
32
|
-
opts = faceify(opts) if params.include? :face
|
|
33
|
-
opts = convert_units(opts, params)
|
|
34
|
-
opts
|
|
35
|
-
end
|
|
36
|
-
module_function :needs
|
|
37
|
-
|
|
38
|
-
# :nodoc:
|
|
39
|
-
# @api private
|
|
40
|
-
def expand_singletons(opts, needed_params)
|
|
41
|
-
Squib::EXPANDING_PARAMS.each_pair do |param_name, api_param|
|
|
42
|
-
if needed_params.include? param_name
|
|
43
|
-
unless opts[api_param].respond_to?(:each)
|
|
44
|
-
opts[api_param] = [opts[api_param]] * @cards.size
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
Squib.logger.debug {"After expand_singletons: #{opts}"}
|
|
49
|
-
opts
|
|
50
|
-
end
|
|
51
|
-
module_function :expand_singletons
|
|
52
|
-
|
|
53
|
-
# Layouts have to come before, so we repeat expand_singletons here
|
|
54
|
-
# :nodoc:
|
|
55
|
-
# @api private
|
|
56
|
-
def layoutify(opts)
|
|
57
|
-
unless opts[:layout].respond_to?(:each)
|
|
58
|
-
opts[:layout] = [opts[:layout]] * @cards.size
|
|
59
|
-
end
|
|
60
|
-
opts[:layout].each_with_index do |layout, i|
|
|
61
|
-
unless layout.nil?
|
|
62
|
-
entry = @layout[layout.to_s]
|
|
63
|
-
unless entry.nil?
|
|
64
|
-
entry.each do |key, value|
|
|
65
|
-
opts[key.to_sym] = [] if opts[key.to_sym].nil?
|
|
66
|
-
opts[key.to_sym][i] ||= entry[key] #don't override if it's already there
|
|
67
|
-
end
|
|
68
|
-
else
|
|
69
|
-
Squib.logger.warn ("Layout entry '#{layout}' does not exist." )
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
Squib.logger.debug {"After layoutify: #{opts}"}
|
|
74
|
-
opts
|
|
75
|
-
end
|
|
76
|
-
module_function :layoutify
|
|
77
|
-
|
|
78
|
-
# :nodoc:
|
|
79
|
-
# @api private
|
|
80
|
-
def formatify(opts)
|
|
81
|
-
opts[:format] = [opts[:format]].flatten
|
|
82
|
-
opts
|
|
83
|
-
end
|
|
84
|
-
module_function :formatify
|
|
85
|
-
|
|
86
|
-
# :nodoc:
|
|
87
|
-
# @api private
|
|
88
|
-
def rangeify (opts)
|
|
89
|
-
range = opts[:range]
|
|
90
|
-
raise 'Range cannot be nil' if range.nil?
|
|
91
|
-
range = 0..(@cards.size-1) if range == :all
|
|
92
|
-
range = range..range if range.is_a? Integer
|
|
93
|
-
if range.max > (@cards.size-1)
|
|
94
|
-
raise ArgumentError.new("#{range} is outside of deck range of 0..#{@cards.size-1}")
|
|
95
|
-
end
|
|
96
|
-
opts[:range] = range
|
|
97
|
-
Squib.logger.debug {"After rangeify: #{opts}"}
|
|
98
|
-
opts
|
|
99
|
-
end
|
|
100
|
-
module_function :rangeify
|
|
101
|
-
|
|
102
|
-
# :nodoc:
|
|
103
|
-
# @api private
|
|
104
|
-
def fileify(opts, file_must_exist=true)
|
|
105
|
-
[opts[:file]].flatten.each do |file|
|
|
106
|
-
if file_must_exist and !File.exists?(file)
|
|
107
|
-
raise "File #{File.expand_path(file)} does not exist!"
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
opts
|
|
111
|
-
end
|
|
112
|
-
module_function :fileify
|
|
113
|
-
|
|
114
|
-
# :nodoc:
|
|
115
|
-
# @api private
|
|
116
|
-
def dirify(opts, key, allow_create=false)
|
|
117
|
-
return opts if Dir.exists?(opts[key])
|
|
118
|
-
if allow_create
|
|
119
|
-
Squib.logger.warn("Dir '#{opts[key]}' does not exist, creating it.")
|
|
120
|
-
Dir.mkdir opts[key]
|
|
121
|
-
return opts
|
|
122
|
-
else
|
|
123
|
-
raise "'#{opts[key]}' does not exist!"
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
module_function :dirify
|
|
127
|
-
|
|
128
|
-
# :nodoc:
|
|
129
|
-
# @api private
|
|
130
|
-
def colorify(opts, nillable=false, key=:color)
|
|
131
|
-
opts[key].each_with_index do |color, i|
|
|
132
|
-
unless nillable && color.nil?
|
|
133
|
-
if custom_colors.key? color.to_s
|
|
134
|
-
color = custom_colors[color.to_s]
|
|
135
|
-
end
|
|
136
|
-
opts[key][i] = color
|
|
137
|
-
end
|
|
138
|
-
end
|
|
139
|
-
Squib.logger.debug {"After colorify: #{opts}"}
|
|
140
|
-
opts
|
|
141
|
-
end
|
|
142
|
-
module_function :colorify
|
|
143
|
-
|
|
144
|
-
# :nodoc:
|
|
145
|
-
# @api private
|
|
146
|
-
def fontify (opts)
|
|
147
|
-
opts[:font].each_with_index do |font, i|
|
|
148
|
-
opts[:font][i] = @font if font==:use_set
|
|
149
|
-
opts[:font][i] = Squib::SYSTEM_DEFAULTS[:default_font] if font == :default
|
|
150
|
-
end
|
|
151
|
-
Squib.logger.debug {"After fontify: #{opts}"}
|
|
152
|
-
opts
|
|
153
|
-
end
|
|
154
|
-
module_function :fontify
|
|
155
|
-
|
|
156
|
-
# :nodoc:
|
|
157
|
-
# @api private
|
|
158
|
-
def radiusify(opts)
|
|
159
|
-
opts[:radius].each_with_index do |radius, i|
|
|
160
|
-
unless radius.nil?
|
|
161
|
-
opts[:x_radius][i] = radius
|
|
162
|
-
opts[:y_radius][i] = radius
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
Squib.logger.debug {"After radiusify: #{opts}"}
|
|
166
|
-
opts
|
|
167
|
-
end
|
|
168
|
-
module_function :radiusify
|
|
169
|
-
|
|
170
|
-
# :nodoc:
|
|
171
|
-
# @api private
|
|
172
|
-
def svgidify(opts)
|
|
173
|
-
opts[:id].each_with_index do |id, i|
|
|
174
|
-
unless id.nil?
|
|
175
|
-
opts[:id][i] = '#' << id unless id.start_with? '#'
|
|
176
|
-
end
|
|
177
|
-
end
|
|
178
|
-
Squib.logger.debug {"After svgidify: #{opts}"}
|
|
179
|
-
opts
|
|
180
|
-
end
|
|
181
|
-
module_function :svgidify
|
|
182
|
-
|
|
183
|
-
# :nodoc:
|
|
184
|
-
# @api private
|
|
185
|
-
def rotateify(opts)
|
|
186
|
-
case opts[:rotate]
|
|
187
|
-
when true, :clockwise
|
|
188
|
-
opts[:angle] = 0.5 * Math::PI
|
|
189
|
-
when :counterclockwise
|
|
190
|
-
opts[:angle] = 1.5 * Math::PI
|
|
191
|
-
end
|
|
192
|
-
Squib.logger.debug {"After rotateify: #{opts}"}
|
|
193
|
-
opts
|
|
194
|
-
end
|
|
195
|
-
module_function :rotateify
|
|
196
|
-
|
|
197
|
-
# Convert units
|
|
198
|
-
# :nodoc:
|
|
199
|
-
# @api private
|
|
200
|
-
def convert_units(opts, needed_params)
|
|
201
|
-
UNIT_CONVERSION_PARAMS.each_pair do |param_name, api_param|
|
|
202
|
-
if needed_params.include? param_name
|
|
203
|
-
if EXPANDING_PARAMS.include? param_name
|
|
204
|
-
opts[api_param].each_with_index do |arg, i|
|
|
205
|
-
opts[api_param][i] = Args::UnitConversion.parse(arg, @dpi)
|
|
206
|
-
end
|
|
207
|
-
else #not an expanding param
|
|
208
|
-
opts[api_param] = Args::UnitConversion.parse(opts[api_param], @dpi)
|
|
209
|
-
end
|
|
210
|
-
end
|
|
211
|
-
end
|
|
212
|
-
Squib.logger.debug {"After convert_units: #{opts}"}
|
|
213
|
-
return opts
|
|
214
|
-
end
|
|
215
|
-
module_function :convert_units
|
|
216
|
-
|
|
217
|
-
# Handles expanding rows. If the "rows" does not respond to to_i (e.g. :infinite),
|
|
218
|
-
# then compute what we need based on number of cards and number of columns.
|
|
219
|
-
# :nodoc:
|
|
220
|
-
# @api private
|
|
221
|
-
def rowify(opts)
|
|
222
|
-
unless opts[:rows].respond_to? :to_i
|
|
223
|
-
raise "Columns must be an integer" unless opts[:columns].respond_to? :to_i
|
|
224
|
-
opts[:rows] = (@cards.size / opts[:columns].to_i).ceil
|
|
225
|
-
end
|
|
226
|
-
opts
|
|
227
|
-
end
|
|
228
|
-
|
|
229
|
-
# Used for showcase - face right if it's :right
|
|
230
|
-
# :nodoc:
|
|
231
|
-
# @api private
|
|
232
|
-
def faceify(opts)
|
|
233
|
-
opts[:face] = (opts[:face].to_s.downcase == 'right')
|
|
234
|
-
opts
|
|
235
|
-
end
|
|
236
|
-
|
|
237
|
-
end
|
|
238
|
-
end
|