squib 0.18.0 → 0.19.0a

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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -39
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +22 -22
  4. data/.github/ISSUE_TEMPLATE/help-wanted.md +13 -13
  5. data/.github/ISSUE_TEMPLATE/release-todo.md +45 -33
  6. data/.github/PULL_REQUEST_TEMPLATE.md +13 -13
  7. data/.github/workflows/tests.yml +22 -22
  8. data/.gitignore +41 -41
  9. data/.vscode/settings.json +4 -3
  10. data/CHANGELOG.md +460 -460
  11. data/CONTRIBUTING.md +40 -40
  12. data/Dockerfile +27 -27
  13. data/Gemfile +2 -2
  14. data/Guardfile +8 -8
  15. data/LICENSE.txt +22 -22
  16. data/README.md +139 -139
  17. data/Rakefile +51 -51
  18. data/bin/squib +5 -5
  19. data/lib/squib/api/settings.rb +21 -21
  20. data/lib/squib/args/arg_loader.rb +138 -138
  21. data/lib/squib/args/box.rb +59 -59
  22. data/lib/squib/args/card_range.rb +34 -34
  23. data/lib/squib/args/color_validator.rb +7 -7
  24. data/lib/squib/args/coords.rb +49 -49
  25. data/lib/squib/args/csv_opts.rb +22 -22
  26. data/lib/squib/args/dir_validator.rb +11 -11
  27. data/lib/squib/args/draw.rb +93 -93
  28. data/lib/squib/args/drop_shadow.rb +39 -39
  29. data/lib/squib/args/embed_adjust.rb +22 -22
  30. data/lib/squib/args/embed_key.rb +12 -12
  31. data/lib/squib/args/hand_special.rb +37 -37
  32. data/lib/squib/args/import.rb +67 -67
  33. data/lib/squib/args/input_file.rb +55 -55
  34. data/lib/squib/args/paint.rb +43 -43
  35. data/lib/squib/args/paragraph.rb +118 -118
  36. data/lib/squib/args/save_batch.rb +65 -65
  37. data/lib/squib/args/scale_box.rb +57 -57
  38. data/lib/squib/args/sheet.rb +165 -165
  39. data/lib/squib/args/showcase_special.rb +41 -41
  40. data/lib/squib/args/sprue_file.rb +44 -44
  41. data/lib/squib/args/svg_special.rb +37 -37
  42. data/lib/squib/args/transform.rb +55 -55
  43. data/lib/squib/args/typographer.rb +115 -115
  44. data/lib/squib/args/unit_conversion.rb +27 -27
  45. data/lib/squib/args/xywh_shorthands.rb +50 -50
  46. data/lib/squib/builtin/layouts/economy.yml +85 -85
  47. data/lib/squib/builtin/layouts/fantasy.yml +101 -101
  48. data/lib/squib/builtin/layouts/hand.yml +62 -62
  49. data/lib/squib/builtin/layouts/party.yml +94 -94
  50. data/lib/squib/builtin/layouts/playing-card.yml +35 -35
  51. data/lib/squib/builtin/layouts/tuck_box.yml +46 -46
  52. data/lib/squib/builtin/projects/advanced/.gitignore +4 -4
  53. data/lib/squib/builtin/projects/advanced/ABOUT.md +19 -19
  54. data/lib/squib/builtin/projects/advanced/Gemfile +11 -11
  55. data/lib/squib/builtin/projects/advanced/Guardfile +21 -21
  56. data/lib/squib/builtin/projects/advanced/IDEAS.md +22 -22
  57. data/lib/squib/builtin/projects/advanced/PLAYTESTING.md +26 -26
  58. data/lib/squib/builtin/projects/advanced/Rakefile +27 -27
  59. data/lib/squib/builtin/projects/advanced/config.yml +49 -49
  60. data/lib/squib/builtin/projects/advanced/docs/PNP NOTES.md +3 -3
  61. data/lib/squib/builtin/projects/advanced/docs/RULES.md +21 -21
  62. data/lib/squib/builtin/projects/advanced/img/example.svg +60 -60
  63. data/lib/squib/builtin/projects/advanced/layouts/deck.yml +27 -27
  64. data/lib/squib/builtin/projects/advanced/src/deck.rb +34 -34
  65. data/lib/squib/builtin/projects/advanced/src/version.rb +3 -3
  66. data/lib/squib/builtin/projects/basic/.gitignore +4 -4
  67. data/lib/squib/builtin/projects/basic/ABOUT.md +19 -19
  68. data/lib/squib/builtin/projects/basic/Gemfile +3 -3
  69. data/lib/squib/builtin/projects/basic/IDEAS.md +22 -22
  70. data/lib/squib/builtin/projects/basic/PLAYTESTING.md +26 -26
  71. data/lib/squib/builtin/projects/basic/PNP NOTES.md +3 -3
  72. data/lib/squib/builtin/projects/basic/RULES.md +21 -21
  73. data/lib/squib/builtin/projects/basic/Rakefile +7 -7
  74. data/lib/squib/builtin/projects/basic/config.yml +50 -50
  75. data/lib/squib/builtin/projects/basic/deck.rb +6 -6
  76. data/lib/squib/builtin/sprues/a4_euro_card.yml +42 -42
  77. data/lib/squib/builtin/sprues/a4_poker_card_8up.yml +40 -40
  78. data/lib/squib/builtin/sprues/a4_poker_card_9up.yml +42 -42
  79. data/lib/squib/builtin/sprues/a4_usa_card.yml +42 -42
  80. data/lib/squib/builtin/sprues/drivethrucards_1up.yml +10 -10
  81. data/lib/squib/builtin/sprues/letter_poker_card_9up.yml +25 -25
  82. data/lib/squib/builtin/sprues/letter_poker_foldable_8up.yml +52 -52
  83. data/lib/squib/builtin/sprues/printplaygames_18up.yml +68 -68
  84. data/lib/squib/card.rb +75 -75
  85. data/lib/squib/commands/cli.rb +39 -39
  86. data/lib/squib/commands/data/template_option.rb +109 -109
  87. data/lib/squib/commands/make_sprue.rb +277 -277
  88. data/lib/squib/commands/new.rb +77 -77
  89. data/lib/squib/conf.rb +149 -149
  90. data/lib/squib/constants.rb +17 -17
  91. data/lib/squib/deck.rb +138 -138
  92. data/lib/squib/dsl/background.rb +35 -35
  93. data/lib/squib/dsl/circle.rb +39 -39
  94. data/lib/squib/dsl/csv.rb +42 -42
  95. data/lib/squib/dsl/curve.rb +35 -35
  96. data/lib/squib/dsl/cut_zone.rb +47 -47
  97. data/lib/squib/dsl/ellipse.rb +37 -37
  98. data/lib/squib/dsl/grid.rb +35 -35
  99. data/lib/squib/dsl/groups.rb +54 -54
  100. data/lib/squib/dsl/hand.rb +42 -42
  101. data/lib/squib/dsl/line.rb +35 -35
  102. data/lib/squib/dsl/png.rb +57 -57
  103. data/lib/squib/dsl/polygon.rb +36 -36
  104. data/lib/squib/dsl/rect.rb +37 -37
  105. data/lib/squib/dsl/safe_zone.rb +48 -48
  106. data/lib/squib/dsl/save.rb +21 -21
  107. data/lib/squib/dsl/save_pdf.rb +50 -50
  108. data/lib/squib/dsl/save_png.rb +48 -48
  109. data/lib/squib/dsl/save_sheet.rb +53 -53
  110. data/lib/squib/dsl/showcase.rb +43 -43
  111. data/lib/squib/dsl/star.rb +37 -37
  112. data/lib/squib/dsl/svg.rb +63 -63
  113. data/lib/squib/dsl/text.rb +54 -54
  114. data/lib/squib/dsl/text_embed.rb +79 -79
  115. data/lib/squib/dsl/triangle.rb +35 -35
  116. data/lib/squib/dsl/units.rb +37 -37
  117. data/lib/squib/dsl/xlsx.rb +40 -40
  118. data/lib/squib/dsl/yaml.rb +40 -40
  119. data/lib/squib/errors_warnings/warn_unexpected_params.rb +14 -14
  120. data/lib/squib/graphics/background.rb +14 -14
  121. data/lib/squib/graphics/cairo_context_wrapper.rb +115 -115
  122. data/lib/squib/graphics/embedding_utils.rb +28 -28
  123. data/lib/squib/graphics/gradient_regex.rb +47 -47
  124. data/lib/squib/graphics/hand.rb +42 -42
  125. data/lib/squib/graphics/image.rb +123 -123
  126. data/lib/squib/graphics/save_doc.rb +77 -77
  127. data/lib/squib/graphics/save_images.rb +91 -91
  128. data/lib/squib/graphics/save_pdf.rb +90 -90
  129. data/lib/squib/graphics/save_sprue.rb +231 -231
  130. data/lib/squib/graphics/shapes.rb +143 -143
  131. data/lib/squib/graphics/showcase.rb +85 -85
  132. data/lib/squib/graphics/text.rb +202 -202
  133. data/lib/squib/import/csv_importer.rb +45 -45
  134. data/lib/squib/import/data_frame.rb +108 -108
  135. data/lib/squib/import/quantity_exploder.rb +17 -17
  136. data/lib/squib/import/xlsx_importer.rb +28 -28
  137. data/lib/squib/import/yaml_importer.rb +30 -30
  138. data/lib/squib/layout_parser.rb +155 -155
  139. data/lib/squib/progress.rb +38 -38
  140. data/lib/squib/sample_helpers.rb +34 -34
  141. data/lib/squib/sprues/crop_line.rb +28 -28
  142. data/lib/squib/sprues/crop_line_dash.rb +35 -35
  143. data/lib/squib/sprues/invalid_sprue_definition.rb +9 -9
  144. data/lib/squib/sprues/sprue.rb +208 -208
  145. data/lib/squib/sprues/sprue_schema.rb +51 -51
  146. data/lib/squib/system_fonts.rb +16 -16
  147. data/lib/squib/version.rb +11 -11
  148. data/lib/squib.rb +35 -35
  149. data/samples/autoscale_font/_autoscale_font.rb +98 -98
  150. data/samples/backend/_backend.rb +26 -26
  151. data/samples/basic.rb +19 -19
  152. data/samples/build_groups/build_groups.rb +36 -36
  153. data/samples/colors/_colors.rb +44 -44
  154. data/samples/colors/_gradients.rb +34 -34
  155. data/samples/colors/_switch_color.rb +33 -33
  156. data/samples/config/config_text_markup.rb +20 -20
  157. data/samples/config/custom_config.rb +18 -18
  158. data/samples/data/_csv.rb +33 -33
  159. data/samples/data/_excel.rb +55 -55
  160. data/samples/data/_yaml.rb +12 -12
  161. data/samples/hello_world.rb +6 -6
  162. data/samples/images/_cairo_access.rb +39 -39
  163. data/samples/images/_images.rb +104 -104
  164. data/samples/images/_more_load_images.rb +102 -102
  165. data/samples/images/_placeholders.rb +48 -48
  166. data/samples/intro/01_hello.rb +8 -8
  167. data/samples/intro/02_options.rb +14 -14
  168. data/samples/intro/03_layout.rb +11 -11
  169. data/samples/intro/04_arrays.rb +15 -15
  170. data/samples/intro/05_excel.rb +14 -14
  171. data/samples/layouts/builtin_layouts.rb +97 -97
  172. data/samples/layouts/layouts.rb +71 -71
  173. data/samples/project/src/characters.rb +8 -8
  174. data/samples/project/src/skills.rb +7 -7
  175. data/samples/proofs/_tgc_proofs.rb +16 -16
  176. data/samples/ranges/_ranges.rb +64 -64
  177. data/samples/saves/_hand.rb +23 -23
  178. data/samples/saves/_portrait_landscape.rb +23 -23
  179. data/samples/saves/_save_filenames.rb +28 -28
  180. data/samples/saves/_save_pdf.rb +29 -29
  181. data/samples/saves/_saves.rb +75 -75
  182. data/samples/saves/_showcase.rb +25 -25
  183. data/samples/shadows/_shadow.rb +71 -71
  184. data/samples/shapes/_draw_shapes.rb +60 -60
  185. data/samples/shapes/_proofs.rb +22 -22
  186. data/samples/sprues/_advanced_sprues.rb +25 -25
  187. data/samples/sprues/_builtin_sprues.rb +22 -22
  188. data/samples/sprues/_fold_sheet.rb +30 -30
  189. data/samples/sprues/_hex_tiles.rb +15 -15
  190. data/samples/sprues/_mints.rb +11 -11
  191. data/samples/sprues/_negative_coords.rb +6 -6
  192. data/samples/sprues/_sprue_example.rb +11 -11
  193. data/samples/system_font_debug/_list_fonts.rb +14 -14
  194. data/samples/text/_embed_text.rb +128 -128
  195. data/samples/text/_text.rb +52 -52
  196. data/samples/text/_text_options.rb +103 -103
  197. data/samples/text/bug134.rb +14 -14
  198. data/samples/units/_cells.rb +50 -50
  199. data/samples/units/_shorthands.rb +48 -48
  200. data/samples/units/_units.rb +39 -39
  201. data/squib.gemspec +58 -58
  202. metadata +21 -21
@@ -1,47 +1,47 @@
1
- require_relative '../errors_warnings/warn_unexpected_params'
2
-
3
- module Squib
4
- class Deck
5
- def cut_zone(opts = {})
6
- DSL::CutZone.new(self, __callee__).run(opts)
7
- end
8
- end
9
-
10
- module DSL
11
- class CutZone
12
- include WarnUnexpectedParams
13
- attr_reader :dsl_method, :deck
14
-
15
- def initialize(deck, dsl_method)
16
- @deck = deck
17
- @dsl_method = dsl_method
18
- end
19
-
20
- def self.accepted_params
21
- %i(x y width height margin angle
22
- x_radius y_radius radius
23
- fill_color stroke_color stroke_width stroke_strategy join dash cap
24
- range layout)
25
- end
26
-
27
- def run(opts)
28
- warn_if_unexpected opts
29
- cut_defaults = {
30
- margin: '0.125in',
31
- radius: '0.125in',
32
- stroke_color: :red,
33
- fill_color: '#0000',
34
- stroke_width: 2.0,
35
- }
36
- new_opts = cut_defaults.merge(opts)
37
- margin = Args::UnitConversion.parse new_opts[:margin], @deck.dpi, @deck.cell_px
38
- new_opts[:x] = margin
39
- new_opts[:y] = margin
40
- new_opts[:width] = deck.width - (2 * margin)
41
- new_opts[:height] = deck.height - (2 * margin)
42
- new_opts.delete :margin
43
- deck.rect new_opts
44
- end
45
- end
46
- end
47
- end
1
+ require_relative '../errors_warnings/warn_unexpected_params'
2
+
3
+ module Squib
4
+ class Deck
5
+ def cut_zone(opts = {})
6
+ DSL::CutZone.new(self, __callee__).run(opts)
7
+ end
8
+ end
9
+
10
+ module DSL
11
+ class CutZone
12
+ include WarnUnexpectedParams
13
+ attr_reader :dsl_method, :deck
14
+
15
+ def initialize(deck, dsl_method)
16
+ @deck = deck
17
+ @dsl_method = dsl_method
18
+ end
19
+
20
+ def self.accepted_params
21
+ %i(x y width height margin angle
22
+ x_radius y_radius radius
23
+ fill_color stroke_color stroke_width stroke_strategy join dash cap
24
+ range layout)
25
+ end
26
+
27
+ def run(opts)
28
+ warn_if_unexpected opts
29
+ cut_defaults = {
30
+ margin: '0.125in',
31
+ radius: '0.125in',
32
+ stroke_color: :red,
33
+ fill_color: '#0000',
34
+ stroke_width: 2.0,
35
+ }
36
+ new_opts = cut_defaults.merge(opts)
37
+ margin = Args::UnitConversion.parse new_opts[:margin], @deck.dpi, @deck.cell_px
38
+ new_opts[:x] = margin
39
+ new_opts[:y] = margin
40
+ new_opts[:width] = deck.width - (2 * margin)
41
+ new_opts[:height] = deck.height - (2 * margin)
42
+ new_opts.delete :margin
43
+ deck.rect new_opts
44
+ end
45
+ end
46
+ end
47
+ end
@@ -1,37 +1,37 @@
1
- require_relative '../errors_warnings/warn_unexpected_params'
2
-
3
- module Squib
4
- class Deck
5
- def ellipse(opts = {})
6
- DSL::Ellipse.new(self, __callee__).run(opts)
7
- end
8
- end
9
-
10
- module DSL
11
- class Ellipse
12
- include WarnUnexpectedParams
13
- attr_reader :dsl_method, :deck
14
-
15
- def initialize(deck, dsl_method)
16
- @deck = deck
17
- @dsl_method = dsl_method
18
- end
19
-
20
- def self.accepted_params
21
- %i(x y width height
22
- fill_color stroke_color stroke_width stroke_strategy join dash cap
23
- angle
24
- range layout)
25
- end
26
-
27
- def run(opts)
28
- warn_if_unexpected opts
29
- range = Args.extract_range opts, deck
30
- draw = Args.extract_draw opts, deck
31
- box = Args.extract_box opts, deck
32
- trans = Args.extract_transform opts, deck
33
- range.each { |i| deck.cards[i].ellipse(box[i], draw[i], trans[i]) }
34
- end
35
- end
36
- end
37
- end
1
+ require_relative '../errors_warnings/warn_unexpected_params'
2
+
3
+ module Squib
4
+ class Deck
5
+ def ellipse(opts = {})
6
+ DSL::Ellipse.new(self, __callee__).run(opts)
7
+ end
8
+ end
9
+
10
+ module DSL
11
+ class Ellipse
12
+ include WarnUnexpectedParams
13
+ attr_reader :dsl_method, :deck
14
+
15
+ def initialize(deck, dsl_method)
16
+ @deck = deck
17
+ @dsl_method = dsl_method
18
+ end
19
+
20
+ def self.accepted_params
21
+ %i(x y width height
22
+ fill_color stroke_color stroke_width stroke_strategy join dash cap
23
+ angle
24
+ range layout)
25
+ end
26
+
27
+ def run(opts)
28
+ warn_if_unexpected opts
29
+ range = Args.extract_range opts, deck
30
+ draw = Args.extract_draw opts, deck
31
+ box = Args.extract_box opts, deck
32
+ trans = Args.extract_transform opts, deck
33
+ range.each { |i| deck.cards[i].ellipse(box[i], draw[i], trans[i]) }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,35 +1,35 @@
1
- require_relative '../errors_warnings/warn_unexpected_params'
2
-
3
- module Squib
4
- class Deck
5
- def grid(opts = {})
6
- DSL::Grid.new(self, __callee__).run(opts)
7
- end
8
- end
9
-
10
- module DSL
11
- class Grid
12
- include WarnUnexpectedParams
13
- attr_reader :dsl_method, :deck
14
-
15
- def initialize(deck, dsl_method)
16
- @deck = deck
17
- @dsl_method = dsl_method
18
- end
19
-
20
- def self.accepted_params
21
- %i(x y width height
22
- fill_color stroke_color stroke_width stroke_strategy join dash cap
23
- range layout)
24
- end
25
-
26
- def run(opts)
27
- warn_if_unexpected opts
28
- range = Args.extract_range opts, deck
29
- draw = Args.extract_draw opts, deck
30
- box = Args.extract_box opts, deck
31
- range.each { |i| deck.cards[i].grid(box[i], draw[i]) }
32
- end
33
- end
34
- end
35
- end
1
+ require_relative '../errors_warnings/warn_unexpected_params'
2
+
3
+ module Squib
4
+ class Deck
5
+ def grid(opts = {})
6
+ DSL::Grid.new(self, __callee__).run(opts)
7
+ end
8
+ end
9
+
10
+ module DSL
11
+ class Grid
12
+ include WarnUnexpectedParams
13
+ attr_reader :dsl_method, :deck
14
+
15
+ def initialize(deck, dsl_method)
16
+ @deck = deck
17
+ @dsl_method = dsl_method
18
+ end
19
+
20
+ def self.accepted_params
21
+ %i(x y width height
22
+ fill_color stroke_color stroke_width stroke_strategy join dash cap
23
+ range layout)
24
+ end
25
+
26
+ def run(opts)
27
+ warn_if_unexpected opts
28
+ range = Args.extract_range opts, deck
29
+ draw = Args.extract_draw opts, deck
30
+ box = Args.extract_box opts, deck
31
+ range.each { |i| deck.cards[i].grid(box[i], draw[i]) }
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,54 +1,54 @@
1
- require 'set'
2
-
3
- module Squib
4
-
5
- # DSL method. See http://squib.readthedocs.io
6
- def enable_build_globally group
7
- groups = (ENV['SQUIB_BUILD'] ||= '').split(',')
8
- ENV['SQUIB_BUILD'] = (groups << group).uniq.join(',')
9
- end
10
- module_function :enable_build_globally
11
-
12
- # DSL method. See http://squib.readthedocs.io
13
- def disable_build_globally group
14
- groups = (ENV['SQUIB_BUILD'] ||= '').split(',')
15
- groups.delete(group.to_s)
16
- ENV['SQUIB_BUILD'] = groups.uniq.join(',')
17
- end
18
- module_function :disable_build_globally
19
-
20
- class Deck
21
-
22
- # DSL method. See http://squib.readthedocs.io
23
- def build grp = :all, &block
24
- raise 'Please provide a block' unless block_given?
25
- block.yield if build_groups.include? grp
26
- end
27
-
28
- # DSL method. See http://squib.readthedocs.io
29
- def enable_build grp
30
- build_groups # make sure it's initialized
31
- @build_groups << grp
32
- end
33
-
34
- # DSL method. See http://squib.readthedocs.io
35
- def disable_build grp
36
- build_groups # make sure it's initialized
37
- @build_groups.delete grp
38
- end
39
-
40
- # DSL method. See http://squib.readthedocs.io
41
- def build_groups
42
- @build_groups ||= Set.new.add(:all)
43
- end
44
-
45
- # Not a DSL method, but initialized from Deck.new
46
- def enable_groups_from_env!
47
- return if ENV['SQUIB_BUILD'].nil?
48
- ENV['SQUIB_BUILD'].split(',').each do |grp|
49
- enable_build grp.strip.to_sym
50
- end
51
- end
52
-
53
- end
54
- end
1
+ require 'set'
2
+
3
+ module Squib
4
+
5
+ # DSL method. See http://squib.readthedocs.io
6
+ def enable_build_globally group
7
+ groups = (ENV['SQUIB_BUILD'] ||= '').split(',')
8
+ ENV['SQUIB_BUILD'] = (groups << group).uniq.join(',')
9
+ end
10
+ module_function :enable_build_globally
11
+
12
+ # DSL method. See http://squib.readthedocs.io
13
+ def disable_build_globally group
14
+ groups = (ENV['SQUIB_BUILD'] ||= '').split(',')
15
+ groups.delete(group.to_s)
16
+ ENV['SQUIB_BUILD'] = groups.uniq.join(',')
17
+ end
18
+ module_function :disable_build_globally
19
+
20
+ class Deck
21
+
22
+ # DSL method. See http://squib.readthedocs.io
23
+ def build grp = :all, &block
24
+ raise 'Please provide a block' unless block_given?
25
+ block.yield if build_groups.include? grp
26
+ end
27
+
28
+ # DSL method. See http://squib.readthedocs.io
29
+ def enable_build grp
30
+ build_groups # make sure it's initialized
31
+ @build_groups << grp
32
+ end
33
+
34
+ # DSL method. See http://squib.readthedocs.io
35
+ def disable_build grp
36
+ build_groups # make sure it's initialized
37
+ @build_groups.delete grp
38
+ end
39
+
40
+ # DSL method. See http://squib.readthedocs.io
41
+ def build_groups
42
+ @build_groups ||= Set.new.add(:all)
43
+ end
44
+
45
+ # Not a DSL method, but initialized from Deck.new
46
+ def enable_groups_from_env!
47
+ return if ENV['SQUIB_BUILD'].nil?
48
+ ENV['SQUIB_BUILD'].split(',').each do |grp|
49
+ enable_build grp.strip.to_sym
50
+ end
51
+ end
52
+
53
+ end
54
+ end
@@ -1,42 +1,42 @@
1
- require_relative '../args/card_range'
2
- require_relative '../args/hand_special'
3
- require_relative '../args/sheet'
4
- require_relative '../errors_warnings/warn_unexpected_params'
5
- require_relative '../graphics/hand'
6
-
7
- module Squib
8
- class Deck
9
- def hand(opts = {})
10
- DSL::Hand.new(self, __callee__).run(opts)
11
- end
12
- end
13
-
14
- module DSL
15
- class Hand
16
- include WarnUnexpectedParams
17
- attr_reader :dsl_method, :deck
18
-
19
- def initialize(deck, dsl_method)
20
- @deck = deck
21
- @dsl_method = dsl_method
22
- @bar = deck.progress_bar
23
- end
24
-
25
- def self.accepted_params
26
- %i(
27
- file dir range
28
- radius angle_range margin fill_color
29
- trim trim_radius
30
- )
31
- end
32
-
33
- def run(opts)
34
- warn_if_unexpected opts
35
- range = Args.extract_range opts, deck
36
- sheet = Args.extract_sheet opts, deck, {file: 'hand.png'}
37
- hand = Args.extract_hand_special opts, deck
38
- deck.render_hand(range, sheet, hand)
39
- end
40
- end
41
- end
42
- end
1
+ require_relative '../args/card_range'
2
+ require_relative '../args/hand_special'
3
+ require_relative '../args/sheet'
4
+ require_relative '../errors_warnings/warn_unexpected_params'
5
+ require_relative '../graphics/hand'
6
+
7
+ module Squib
8
+ class Deck
9
+ def hand(opts = {})
10
+ DSL::Hand.new(self, __callee__).run(opts)
11
+ end
12
+ end
13
+
14
+ module DSL
15
+ class Hand
16
+ include WarnUnexpectedParams
17
+ attr_reader :dsl_method, :deck
18
+
19
+ def initialize(deck, dsl_method)
20
+ @deck = deck
21
+ @dsl_method = dsl_method
22
+ @bar = deck.progress_bar
23
+ end
24
+
25
+ def self.accepted_params
26
+ %i(
27
+ file dir range
28
+ radius angle_range margin fill_color
29
+ trim trim_radius
30
+ )
31
+ end
32
+
33
+ def run(opts)
34
+ warn_if_unexpected opts
35
+ range = Args.extract_range opts, deck
36
+ sheet = Args.extract_sheet opts, deck, {file: 'hand.png'}
37
+ hand = Args.extract_hand_special opts, deck
38
+ deck.render_hand(range, sheet, hand)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,35 +1,35 @@
1
- require_relative '../errors_warnings/warn_unexpected_params'
2
-
3
- module Squib
4
- class Deck
5
- def line(opts = {})
6
- DSL::Line.new(self, __callee__).run(opts)
7
- end
8
- end
9
-
10
- module DSL
11
- class Line
12
- include WarnUnexpectedParams
13
- attr_reader :dsl_method, :deck
14
-
15
- def initialize(deck, dsl_method)
16
- @deck = deck
17
- @dsl_method = dsl_method
18
- end
19
-
20
- def self.accepted_params
21
- %i(x1 y1 x2 y2
22
- fill_color stroke_color stroke_width stroke_strategy join dash cap
23
- range layout)
24
- end
25
-
26
- def run(opts)
27
- warn_if_unexpected opts
28
- range = Args.extract_range opts, deck
29
- draw = Args.extract_draw opts, deck
30
- coords = Args.extract_coords opts, deck
31
- range.each { |i| deck.cards[i].line(coords[i], draw[i]) }
32
- end
33
- end
34
- end
35
- end
1
+ require_relative '../errors_warnings/warn_unexpected_params'
2
+
3
+ module Squib
4
+ class Deck
5
+ def line(opts = {})
6
+ DSL::Line.new(self, __callee__).run(opts)
7
+ end
8
+ end
9
+
10
+ module DSL
11
+ class Line
12
+ include WarnUnexpectedParams
13
+ attr_reader :dsl_method, :deck
14
+
15
+ def initialize(deck, dsl_method)
16
+ @deck = deck
17
+ @dsl_method = dsl_method
18
+ end
19
+
20
+ def self.accepted_params
21
+ %i(x1 y1 x2 y2
22
+ fill_color stroke_color stroke_width stroke_strategy join dash cap
23
+ range layout)
24
+ end
25
+
26
+ def run(opts)
27
+ warn_if_unexpected opts
28
+ range = Args.extract_range opts, deck
29
+ draw = Args.extract_draw opts, deck
30
+ coords = Args.extract_coords opts, deck
31
+ range.each { |i| deck.cards[i].line(coords[i], draw[i]) }
32
+ end
33
+ end
34
+ end
35
+ end
data/lib/squib/dsl/png.rb CHANGED
@@ -1,57 +1,57 @@
1
- require_relative '../errors_warnings/warn_unexpected_params'
2
- require_relative '../args/card_range'
3
- require_relative '../args/paint'
4
- require_relative '../args/scale_box'
5
- require_relative '../args/transform'
6
- require_relative '../args/input_file'
7
-
8
- module Squib
9
- class Deck
10
- def png(opts = {})
11
- DSL::PNG.new(self, __callee__).run(opts)
12
- end
13
- end
14
-
15
- module DSL
16
- class PNG
17
- include WarnUnexpectedParams
18
- attr_reader :dsl_method, :deck
19
-
20
- def initialize(deck, dsl_method)
21
- @deck = deck
22
- @dsl_method = dsl_method
23
- end
24
-
25
- def self.accepted_params
26
- %i(
27
- file
28
- x y width height
29
- alpha blend mask angle
30
- crop_x crop_y crop_width crop_height
31
- crop_corner_radius crop_corner_x_radius crop_corner_y_radius
32
- flip_horizontal flip_vertical
33
- range layout
34
- placeholder
35
- )
36
- end
37
-
38
- def run(opts)
39
- warn_if_unexpected opts
40
- Dir.chdir(deck.img_dir) do
41
- range = Args.extract_range opts, deck
42
- paint = Args.extract_paint opts, deck
43
- box = Args.extract_scale_box opts, deck
44
- trans = Args.extract_transform opts, deck
45
- ifile = Args.extract_input_file opts, deck
46
- deck.progress_bar.start('Loading PNG(s)', range.size) do |bar|
47
- range.each do |i|
48
- deck.cards[i].png(ifile[i].file, box[i], paint[i], trans[i])
49
- bar.increment
50
- end
51
- end
52
- end
53
-
54
- end
55
- end
56
- end
57
- end
1
+ require_relative '../errors_warnings/warn_unexpected_params'
2
+ require_relative '../args/card_range'
3
+ require_relative '../args/paint'
4
+ require_relative '../args/scale_box'
5
+ require_relative '../args/transform'
6
+ require_relative '../args/input_file'
7
+
8
+ module Squib
9
+ class Deck
10
+ def png(opts = {})
11
+ DSL::PNG.new(self, __callee__).run(opts)
12
+ end
13
+ end
14
+
15
+ module DSL
16
+ class PNG
17
+ include WarnUnexpectedParams
18
+ attr_reader :dsl_method, :deck
19
+
20
+ def initialize(deck, dsl_method)
21
+ @deck = deck
22
+ @dsl_method = dsl_method
23
+ end
24
+
25
+ def self.accepted_params
26
+ %i(
27
+ file
28
+ x y width height
29
+ alpha blend mask angle
30
+ crop_x crop_y crop_width crop_height
31
+ crop_corner_radius crop_corner_x_radius crop_corner_y_radius
32
+ flip_horizontal flip_vertical
33
+ range layout
34
+ placeholder
35
+ )
36
+ end
37
+
38
+ def run(opts)
39
+ warn_if_unexpected opts
40
+ Dir.chdir(deck.img_dir) do
41
+ range = Args.extract_range opts, deck
42
+ paint = Args.extract_paint opts, deck
43
+ box = Args.extract_scale_box opts, deck
44
+ trans = Args.extract_transform opts, deck
45
+ ifile = Args.extract_input_file opts, deck
46
+ deck.progress_bar.start('Loading PNG(s)', range.size) do |bar|
47
+ range.each do |i|
48
+ deck.cards[i].png(ifile[i].file, box[i], paint[i], trans[i])
49
+ bar.increment
50
+ end
51
+ end
52
+ end
53
+
54
+ end
55
+ end
56
+ end
57
+ end