squib 0.14.1 → 0.14.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +41 -41
  3. data/.travis.yml +19 -19
  4. data/CHANGELOG.md +357 -340
  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 +49 -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 +49 -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 -0
  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 -0
  86. data/lib/squib/card.rb +75 -74
  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 +139 -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 +108 -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 -205
  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 -126
  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/build_groups/build_groups.rb +36 -36
  121. data/samples/colors/_colors.rb +38 -38
  122. data/samples/colors/_gradients.rb +34 -34
  123. data/samples/config/config_text_markup.rb +20 -20
  124. data/samples/config/custom_config.rb +18 -18
  125. data/samples/data/_csv.rb +33 -33
  126. data/samples/data/_excel.rb +55 -55
  127. data/samples/data/_yaml.rb +12 -12
  128. data/samples/hello_world.rb +6 -6
  129. data/samples/images/_cairo_access.rb +39 -39
  130. data/samples/images/_images.rb +104 -104
  131. data/samples/images/_more_load_images.rb +102 -102
  132. data/samples/intro/01_hello.rb +8 -8
  133. data/samples/intro/02_options.rb +14 -14
  134. data/samples/intro/03_layout.rb +11 -11
  135. data/samples/intro/04_arrays.rb +15 -15
  136. data/samples/intro/05_excel.rb +14 -14
  137. data/samples/layouts/builtin_layouts.rb +97 -97
  138. data/samples/layouts/layouts.rb +71 -71
  139. data/samples/project/src/characters.rb +8 -8
  140. data/samples/project/src/skills.rb +7 -7
  141. data/samples/proofs/_tgc_proofs.rb +16 -16
  142. data/samples/ranges/_ranges.rb +64 -64
  143. data/samples/saves/_hand.rb +23 -23
  144. data/samples/saves/_portrait_landscape.rb +23 -23
  145. data/samples/saves/_save_pdf.rb +29 -29
  146. data/samples/saves/_saves.rb +51 -51
  147. data/samples/saves/_showcase.rb +25 -25
  148. data/samples/shapes/_draw_shapes.rb +60 -58
  149. data/samples/shapes/_proofs.rb +22 -22
  150. data/samples/sprues/_advanced_sprues.rb +24 -24
  151. data/samples/sprues/_builtin_sprues.rb +21 -19
  152. data/samples/sprues/_fold_sheet.rb +27 -27
  153. data/samples/sprues/_hex_tiles.rb +15 -15
  154. data/samples/sprues/_mints.rb +11 -11
  155. data/samples/sprues/_sprue_example.rb +11 -11
  156. data/samples/text/_embed_text.rb +128 -128
  157. data/samples/text/_text.rb +47 -47
  158. data/samples/text/_text_options.rb +102 -102
  159. data/samples/text/bug134.rb +14 -14
  160. data/samples/units/_units.rb +32 -32
  161. data/squib.gemspec +52 -51
  162. metadata +66 -50
@@ -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