squib 0.14.2 → 0.14.3.pre1

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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +41 -41
  3. data/.travis.yml +19 -19
  4. data/CHANGELOG.md +366 -357
  5. data/CONTRIBUTING.md +40 -40
  6. data/Gemfile +2 -2
  7. data/LICENSE.txt +22 -22
  8. data/README.md +121 -121
  9. data/RELEASE TODO.md +21 -21
  10. data/Rakefile +48 -48
  11. data/appveyor.yml +24 -24
  12. data/bin/squib +4 -4
  13. data/lib/squib.rb +32 -32
  14. data/lib/squib/api/background.rb +15 -15
  15. data/lib/squib/api/data.rb +137 -137
  16. data/lib/squib/api/groups.rb +54 -54
  17. data/lib/squib/api/image.rb +49 -49
  18. data/lib/squib/api/save.rb +83 -83
  19. data/lib/squib/api/settings.rb +21 -21
  20. data/lib/squib/api/shapes.rb +124 -124
  21. data/lib/squib/api/text.rb +25 -25
  22. data/lib/squib/api/text_embed.rb +71 -71
  23. data/lib/squib/api/units.rb +27 -27
  24. data/lib/squib/args/arg_loader.rb +126 -126
  25. data/lib/squib/args/box.rb +55 -55
  26. data/lib/squib/args/card_range.rb +32 -32
  27. data/lib/squib/args/color_validator.rb +12 -12
  28. data/lib/squib/args/coords.rb +35 -35
  29. data/lib/squib/args/csv_opts.rb +25 -25
  30. data/lib/squib/args/dir_validator.rb +16 -16
  31. data/lib/squib/args/draw.rb +92 -92
  32. data/lib/squib/args/embed_adjust.rb +25 -25
  33. data/lib/squib/args/embed_key.rb +17 -17
  34. data/lib/squib/args/hand_special.rb +37 -37
  35. data/lib/squib/args/import.rb +40 -40
  36. data/lib/squib/args/input_file.rb +37 -37
  37. data/lib/squib/args/paint.rb +44 -44
  38. data/lib/squib/args/paragraph.rb +116 -116
  39. data/lib/squib/args/save_batch.rb +63 -63
  40. data/lib/squib/args/scale_box.rb +53 -53
  41. data/lib/squib/args/sheet.rb +172 -172
  42. data/lib/squib/args/showcase_special.rb +38 -38
  43. data/lib/squib/args/sprue_file.rb +44 -44
  44. data/lib/squib/args/svg_special.rb +37 -37
  45. data/lib/squib/args/transform.rb +61 -61
  46. data/lib/squib/args/typographer.rb +119 -119
  47. data/lib/squib/args/unit_conversion.rb +29 -29
  48. data/lib/squib/builtin/layouts/economy.yml +85 -85
  49. data/lib/squib/builtin/layouts/fantasy.yml +101 -101
  50. data/lib/squib/builtin/layouts/hand.yml +62 -62
  51. data/lib/squib/builtin/layouts/party.yml +94 -94
  52. data/lib/squib/builtin/layouts/playing-card.yml +35 -35
  53. data/lib/squib/builtin/layouts/tuck_box.yml +46 -46
  54. data/lib/squib/builtin/projects/advanced/.gitignore +4 -4
  55. data/lib/squib/builtin/projects/advanced/ABOUT.md +19 -19
  56. data/lib/squib/builtin/projects/advanced/Gemfile +11 -11
  57. data/lib/squib/builtin/projects/advanced/Guardfile +21 -21
  58. data/lib/squib/builtin/projects/advanced/IDEAS.md +22 -22
  59. data/lib/squib/builtin/projects/advanced/PLAYTESTING.md +26 -26
  60. data/lib/squib/builtin/projects/advanced/Rakefile +27 -27
  61. data/lib/squib/builtin/projects/advanced/config.yml +53 -49
  62. data/lib/squib/builtin/projects/advanced/docs/PNP NOTES.md +3 -3
  63. data/lib/squib/builtin/projects/advanced/docs/RULES.md +21 -21
  64. data/lib/squib/builtin/projects/advanced/img/example.svg +60 -60
  65. data/lib/squib/builtin/projects/advanced/layouts/deck.yml +27 -27
  66. data/lib/squib/builtin/projects/advanced/src/deck.rb +34 -34
  67. data/lib/squib/builtin/projects/advanced/src/version.rb +3 -3
  68. data/lib/squib/builtin/projects/basic/.gitignore +4 -4
  69. data/lib/squib/builtin/projects/basic/ABOUT.md +19 -19
  70. data/lib/squib/builtin/projects/basic/Gemfile +3 -3
  71. data/lib/squib/builtin/projects/basic/IDEAS.md +22 -22
  72. data/lib/squib/builtin/projects/basic/PLAYTESTING.md +26 -26
  73. data/lib/squib/builtin/projects/basic/PNP NOTES.md +3 -3
  74. data/lib/squib/builtin/projects/basic/RULES.md +21 -21
  75. data/lib/squib/builtin/projects/basic/Rakefile +7 -7
  76. data/lib/squib/builtin/projects/basic/config.yml +53 -49
  77. data/lib/squib/builtin/projects/basic/deck.rb +6 -6
  78. data/lib/squib/builtin/sprues/a4_euro_card.yml +42 -42
  79. data/lib/squib/builtin/sprues/a4_poker_card_8up.yml +40 -40
  80. data/lib/squib/builtin/sprues/a4_poker_card_9up.yml +42 -42
  81. data/lib/squib/builtin/sprues/a4_usa_card.yml +42 -42
  82. data/lib/squib/builtin/sprues/drivethrucards_1up.yml +10 -10
  83. data/lib/squib/builtin/sprues/letter_poker_card_9up.yml +25 -25
  84. data/lib/squib/builtin/sprues/letter_poker_foldable_8up.yml +52 -52
  85. data/lib/squib/builtin/sprues/printplaygames_18up.yml +68 -68
  86. data/lib/squib/card.rb +75 -75
  87. data/lib/squib/commands/cli.rb +39 -39
  88. data/lib/squib/commands/data/template_option.rb +109 -109
  89. data/lib/squib/commands/make_sprue.rb +275 -275
  90. data/lib/squib/commands/new.rb +77 -77
  91. data/lib/squib/conf.rb +144 -139
  92. data/lib/squib/constants.rb +17 -17
  93. data/lib/squib/deck.rb +116 -116
  94. data/lib/squib/graphics/background.rb +14 -14
  95. data/lib/squib/graphics/cairo_context_wrapper.rb +113 -113
  96. data/lib/squib/graphics/embedding_utils.rb +28 -28
  97. data/lib/squib/graphics/gradient_regex.rb +47 -47
  98. data/lib/squib/graphics/hand.rb +42 -42
  99. data/lib/squib/graphics/image.rb +129 -108
  100. data/lib/squib/graphics/save_doc.rb +61 -61
  101. data/lib/squib/graphics/save_images.rb +52 -52
  102. data/lib/squib/graphics/save_pdf.rb +90 -90
  103. data/lib/squib/graphics/save_sprue.rb +204 -204
  104. data/lib/squib/graphics/shapes.rb +143 -143
  105. data/lib/squib/graphics/showcase.rb +85 -85
  106. data/lib/squib/graphics/text.rb +174 -174
  107. data/lib/squib/import/data_frame.rb +108 -108
  108. data/lib/squib/layout_parser.rb +138 -138
  109. data/lib/squib/progress.rb +38 -38
  110. data/lib/squib/sample_helpers.rb +34 -34
  111. data/lib/squib/sprues/crop_line.rb +28 -28
  112. data/lib/squib/sprues/crop_line_dash.rb +35 -35
  113. data/lib/squib/sprues/invalid_sprue_definition.rb +9 -9
  114. data/lib/squib/sprues/sprue.rb +203 -203
  115. data/lib/squib/sprues/sprue_schema.rb +48 -48
  116. data/lib/squib/version.rb +10 -10
  117. data/samples/autoscale_font/_autoscale_font.rb +29 -29
  118. data/samples/backend/_backend.rb +26 -26
  119. data/samples/basic.rb +19 -19
  120. data/samples/bug256/_bug256.rb +13 -0
  121. data/samples/build_groups/build_groups.rb +36 -36
  122. data/samples/colors/_colors.rb +38 -38
  123. data/samples/colors/_gradients.rb +34 -34
  124. data/samples/config/config_text_markup.rb +20 -20
  125. data/samples/config/custom_config.rb +18 -18
  126. data/samples/data/_csv.rb +33 -33
  127. data/samples/data/_excel.rb +55 -55
  128. data/samples/data/_yaml.rb +12 -12
  129. data/samples/hello_world.rb +6 -6
  130. data/samples/images/_cairo_access.rb +39 -39
  131. data/samples/images/_images.rb +104 -104
  132. data/samples/images/_more_load_images.rb +102 -102
  133. data/samples/intro/01_hello.rb +8 -8
  134. data/samples/intro/02_options.rb +14 -14
  135. data/samples/intro/03_layout.rb +11 -11
  136. data/samples/intro/04_arrays.rb +15 -15
  137. data/samples/intro/05_excel.rb +14 -14
  138. data/samples/layouts/builtin_layouts.rb +97 -97
  139. data/samples/layouts/layouts.rb +71 -71
  140. data/samples/project/src/characters.rb +8 -8
  141. data/samples/project/src/skills.rb +7 -7
  142. data/samples/proofs/_tgc_proofs.rb +16 -16
  143. data/samples/ranges/_ranges.rb +64 -64
  144. data/samples/saves/_hand.rb +23 -23
  145. data/samples/saves/_portrait_landscape.rb +23 -23
  146. data/samples/saves/_save_pdf.rb +29 -29
  147. data/samples/saves/_saves.rb +51 -51
  148. data/samples/saves/_showcase.rb +25 -25
  149. data/samples/shapes/_draw_shapes.rb +60 -60
  150. data/samples/shapes/_proofs.rb +22 -22
  151. data/samples/sprues/_advanced_sprues.rb +24 -24
  152. data/samples/sprues/_builtin_sprues.rb +21 -21
  153. data/samples/sprues/_fold_sheet.rb +27 -27
  154. data/samples/sprues/_hex_tiles.rb +15 -15
  155. data/samples/sprues/_mints.rb +11 -11
  156. data/samples/sprues/_sprue_example.rb +11 -11
  157. data/samples/text/_embed_text.rb +128 -128
  158. data/samples/text/_text.rb +47 -47
  159. data/samples/text/_text_options.rb +102 -102
  160. data/samples/text/bug134.rb +14 -14
  161. data/samples/units/_units.rb +32 -32
  162. data/squib.gemspec +52 -52
  163. metadata +51 -48
@@ -1,94 +1,94 @@
1
- #This layout inspired by popular games like Fluxx and Apples to Apples
2
- title_box:
3
- x: 75
4
- y: 75
5
- width: 125
6
- height: 975
7
-
8
- title:
9
- x: 75
10
- y: 1050
11
- angle: 4.71238898 # 3 π / 2
12
- width: 850
13
- height: 125
14
- align: right
15
- valign: middle
16
- font: Sans 22
17
-
18
- title_middle:
19
- x: 225
20
- y: 550
21
- font: Sans 18
22
- width: 525
23
- height: 150
24
- valign: bottom
25
-
26
- middle_rect:
27
- x: 225
28
- y: 715
29
- width: 525
30
- height: 25
31
-
32
- rule_top:
33
- x: 225
34
- y: 200
35
- width: 525
36
- height: 300
37
- font: Times New Roman, Serif 10
38
-
39
- rule_bottom:
40
- x: 225
41
- y: 750
42
- width: 525
43
- height: 300
44
- font: Times New Roman, Serif 10
45
-
46
- type_icon:
47
- x: 75
48
- y: 75
49
- width: 125
50
- height: 125
51
- align: center
52
- valign: middle
53
- font: 'Sans 24'
54
-
55
- type:
56
- x: 225
57
- y: 75
58
- width: 525
59
- height: 125
60
- align: left
61
- valign: top
62
- font: 'Sans 30'
63
-
64
- copyright:
65
- x: 75
66
- y: 1025
67
- width: 675
68
- height: 25
69
- font_size: 5
70
- align: right
71
- valign: bottom
72
- #aliases for copyright
73
- copy:
74
- extends: copyright
75
- credit:
76
- extends: copyright
77
- credits:
78
- extends: copyright
79
-
80
- # The "cut line", without rounded corners
81
- cut:
82
- x: 37.5
83
- y: 37.5
84
- radius: 16
85
- width: 750
86
- height: 1050
87
-
88
- # The "safe zone" as defined by TheGameCrafter poker cards
89
- safe:
90
- x: 75
91
- y: 75
92
- width: 675
93
- height: 975
94
- dash: 3 3
1
+ #This layout inspired by popular games like Fluxx and Apples to Apples
2
+ title_box:
3
+ x: 75
4
+ y: 75
5
+ width: 125
6
+ height: 975
7
+
8
+ title:
9
+ x: 75
10
+ y: 1050
11
+ angle: 4.71238898 # 3 π / 2
12
+ width: 850
13
+ height: 125
14
+ align: right
15
+ valign: middle
16
+ font: Sans 22
17
+
18
+ title_middle:
19
+ x: 225
20
+ y: 550
21
+ font: Sans 18
22
+ width: 525
23
+ height: 150
24
+ valign: bottom
25
+
26
+ middle_rect:
27
+ x: 225
28
+ y: 715
29
+ width: 525
30
+ height: 25
31
+
32
+ rule_top:
33
+ x: 225
34
+ y: 200
35
+ width: 525
36
+ height: 300
37
+ font: Times New Roman, Serif 10
38
+
39
+ rule_bottom:
40
+ x: 225
41
+ y: 750
42
+ width: 525
43
+ height: 300
44
+ font: Times New Roman, Serif 10
45
+
46
+ type_icon:
47
+ x: 75
48
+ y: 75
49
+ width: 125
50
+ height: 125
51
+ align: center
52
+ valign: middle
53
+ font: 'Sans 24'
54
+
55
+ type:
56
+ x: 225
57
+ y: 75
58
+ width: 525
59
+ height: 125
60
+ align: left
61
+ valign: top
62
+ font: 'Sans 30'
63
+
64
+ copyright:
65
+ x: 75
66
+ y: 1025
67
+ width: 675
68
+ height: 25
69
+ font_size: 5
70
+ align: right
71
+ valign: bottom
72
+ #aliases for copyright
73
+ copy:
74
+ extends: copyright
75
+ credit:
76
+ extends: copyright
77
+ credits:
78
+ extends: copyright
79
+
80
+ # The "cut line", without rounded corners
81
+ cut:
82
+ x: 37.5
83
+ y: 37.5
84
+ radius: 16
85
+ width: 750
86
+ height: 1050
87
+
88
+ # The "safe zone" as defined by TheGameCrafter poker cards
89
+ safe:
90
+ x: 75
91
+ y: 75
92
+ width: 675
93
+ height: 975
94
+ dash: 3 3
@@ -1,35 +1,35 @@
1
- # A basic playing card layout with bonuses in the upper-left and lower-right.
2
- # The lower-right angle is rotated for text.
3
- bonus_ul:
4
- x: 75
5
- y: 75
6
- width: 200
7
- height: 200
8
- bonus_lr:
9
- extends: bonus_ul
10
- x: 750
11
- y: 1050
12
- angle: 3.14159
13
- art:
14
- x: 150
15
- y: 275
16
- width: 525
17
- height: 575
18
- valign: middle
19
- align: center
20
-
21
- # The "cut line", without rounded corners
22
- cut:
23
- x: 37.5
24
- y: 37.5
25
- width: 750
26
- height: 1050
27
-
28
- # The "safe zone" as defined by TheGameCrafter poker cards
29
- safe:
30
- x: 75
31
- y: 75
32
- width: 675
33
- height: 975
34
- radius: 16
35
- dash: 3 3
1
+ # A basic playing card layout with bonuses in the upper-left and lower-right.
2
+ # The lower-right angle is rotated for text.
3
+ bonus_ul:
4
+ x: 75
5
+ y: 75
6
+ width: 200
7
+ height: 200
8
+ bonus_lr:
9
+ extends: bonus_ul
10
+ x: 750
11
+ y: 1050
12
+ angle: 3.14159
13
+ art:
14
+ x: 150
15
+ y: 275
16
+ width: 525
17
+ height: 575
18
+ valign: middle
19
+ align: center
20
+
21
+ # The "cut line", without rounded corners
22
+ cut:
23
+ x: 37.5
24
+ y: 37.5
25
+ width: 750
26
+ height: 1050
27
+
28
+ # The "safe zone" as defined by TheGameCrafter poker cards
29
+ safe:
30
+ x: 75
31
+ y: 75
32
+ width: 675
33
+ height: 975
34
+ radius: 16
35
+ dash: 3 3
@@ -1,46 +1,46 @@
1
- ## Rectangles correspond to the "safe zones" as defined by TheGameCrafter for tuck boxes 2325x1950 pixels
2
- top_rect:
3
- x: 313
4
- y: 198
5
- width: 688
6
- height: 167
7
-
8
- bottom_rect:
9
- x: 313
10
- y: 1526
11
- width: 688
12
- height: 167
13
-
14
- right_rect:
15
- x: 77
16
- y: 466
17
- width: 164
18
- height: 988
19
-
20
- left_rect:
21
- x: 1080
22
- y: 466
23
- width: 164
24
- height: 988
25
-
26
- back_rect:
27
- x: 313
28
- y: 466
29
- width: 688
30
- height: 989
31
-
32
- front_rect:
33
- x: 1322
34
- y: 466
35
- width: 688
36
- height: 989
37
-
38
- front_curve:
39
- x1: 1550
40
- y1: 466
41
- x2: 1765
42
- y2: 466
43
- cx1: 1575
44
- cy1: 565
45
- cx2: 1740
46
- cy2: 565
1
+ ## Rectangles correspond to the "safe zones" as defined by TheGameCrafter for tuck boxes 2325x1950 pixels
2
+ top_rect:
3
+ x: 313
4
+ y: 198
5
+ width: 688
6
+ height: 167
7
+
8
+ bottom_rect:
9
+ x: 313
10
+ y: 1526
11
+ width: 688
12
+ height: 167
13
+
14
+ right_rect:
15
+ x: 77
16
+ y: 466
17
+ width: 164
18
+ height: 988
19
+
20
+ left_rect:
21
+ x: 1080
22
+ y: 466
23
+ width: 164
24
+ height: 988
25
+
26
+ back_rect:
27
+ x: 313
28
+ y: 466
29
+ width: 688
30
+ height: 989
31
+
32
+ front_rect:
33
+ x: 1322
34
+ y: 466
35
+ width: 688
36
+ height: 989
37
+
38
+ front_curve:
39
+ x1: 1550
40
+ y1: 466
41
+ x2: 1765
42
+ y2: 466
43
+ cx1: 1575
44
+ cy1: 565
45
+ cx2: 1740
46
+ cy2: 565
@@ -1,4 +1,4 @@
1
- _output/*.png
2
- _output/*.pdf
3
- ~$*
4
- .DS_Store
1
+ _output/*.png
2
+ _output/*.pdf
3
+ ~$*
4
+ .DS_Store
@@ -1,19 +1,19 @@
1
- My Awesome Game
2
- ===============
3
-
4
- Check out my awesome game!
5
-
6
-
7
- Objective
8
- ---------
9
-
10
-
11
-
12
- Gameplay
13
- --------
14
-
15
-
16
-
17
- Ending the Game
18
- ---------------
19
-
1
+ My Awesome Game
2
+ ===============
3
+
4
+ Check out my awesome game!
5
+
6
+
7
+ Objective
8
+ ---------
9
+
10
+
11
+
12
+ Gameplay
13
+ --------
14
+
15
+
16
+
17
+ Ending the Game
18
+ ---------------
19
+
@@ -1,11 +1,11 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'squib'
4
- gem 'guard'
5
- gem 'guard-rake'
6
-
7
- # If you do any simulation or anything fancy, you might want this
8
- # gem 'rspec' # Unit testing with behavior-driven development
9
-
10
- # If you want to generate PDFs manually (e.g. rules) this is good
11
- # gem 'prawn'
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'squib'
4
+ gem 'guard'
5
+ gem 'guard-rake'
6
+
7
+ # If you do any simulation or anything fancy, you might want this
8
+ # gem 'rspec' # Unit testing with behavior-driven development
9
+
10
+ # If you want to generate PDFs manually (e.g. rules) this is good
11
+ # gem 'prawn'
@@ -1,21 +1,21 @@
1
- group :default do
2
- guard 'rake', :task => 'default' do
3
- watch %r{data/.*\.xlsx$}
4
- watch %r{data/.*\.csv$}
5
- watch %r{src/.*\.rb$}
6
- watch %r{.*\.yml}
7
- watch %r{img/.*\.svg$}
8
- watch %r{img/.*\.png$}
9
- end
10
- end
11
-
12
- group :deck do
13
- guard 'rake', :task => 'default' do
14
- watch %r{data/.*\.xlsx$}
15
- watch %r{data/.*\.csv$}
16
- watch %r{src/.*\.rb$}
17
- watch %r{.*\.yml}
18
- watch %r{img/.*\.svg$}
19
- watch %r{img/.*\.png$}
20
- end
21
- end
1
+ group :default do
2
+ guard 'rake', :task => 'default' do
3
+ watch %r{data/.*\.xlsx$}
4
+ watch %r{data/.*\.csv$}
5
+ watch %r{src/.*\.rb$}
6
+ watch %r{.*\.yml}
7
+ watch %r{img/.*\.svg$}
8
+ watch %r{img/.*\.png$}
9
+ end
10
+ end
11
+
12
+ group :deck do
13
+ guard 'rake', :task => 'default' do
14
+ watch %r{data/.*\.xlsx$}
15
+ watch %r{data/.*\.csv$}
16
+ watch %r{src/.*\.rb$}
17
+ watch %r{.*\.yml}
18
+ watch %r{img/.*\.svg$}
19
+ watch %r{img/.*\.png$}
20
+ end
21
+ end