squib 0.15.3 → 0.17.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests.yml +22 -0
  3. data/CHANGELOG.md +35 -1
  4. data/Dockerfile +18 -16
  5. data/Guardfile +8 -0
  6. data/README.md +3 -9
  7. data/RELEASE TODO.md +4 -2
  8. data/Rakefile +3 -0
  9. data/lib/squib.rb +5 -1
  10. data/lib/squib/args/arg_loader.rb +109 -106
  11. data/lib/squib/args/box.rb +52 -48
  12. data/lib/squib/args/card_range.rb +26 -24
  13. data/lib/squib/args/color_validator.rb +4 -9
  14. data/lib/squib/args/coords.rb +39 -25
  15. data/lib/squib/args/csv_opts.rb +13 -16
  16. data/lib/squib/args/dir_validator.rb +7 -12
  17. data/lib/squib/args/draw.rb +69 -68
  18. data/lib/squib/args/drop_shadow.rb +39 -0
  19. data/lib/squib/args/embed_adjust.rb +12 -15
  20. data/lib/squib/args/embed_key.rb +6 -11
  21. data/lib/squib/args/hand_special.rb +25 -25
  22. data/lib/squib/args/import.rb +54 -27
  23. data/lib/squib/args/input_file.rb +22 -26
  24. data/lib/squib/args/paint.rb +30 -31
  25. data/lib/squib/args/paragraph.rb +95 -93
  26. data/lib/squib/args/save_batch.rb +50 -48
  27. data/lib/squib/args/scale_box.rb +43 -39
  28. data/lib/squib/args/sheet.rb +142 -149
  29. data/lib/squib/args/showcase_special.rb +32 -32
  30. data/lib/squib/args/sprue_file.rb +30 -30
  31. data/lib/squib/args/svg_special.rb +26 -26
  32. data/lib/squib/args/transform.rb +48 -54
  33. data/lib/squib/args/typographer.rb +88 -92
  34. data/lib/squib/args/unit_conversion.rb +6 -8
  35. data/lib/squib/args/xywh_shorthands.rb +51 -0
  36. data/lib/squib/builtin/projects/advanced/config.yml +4 -3
  37. data/lib/squib/builtin/projects/basic/config.yml +4 -3
  38. data/lib/squib/conf.rb +5 -0
  39. data/lib/squib/deck.rb +34 -12
  40. data/lib/squib/dsl/background.rb +35 -0
  41. data/lib/squib/dsl/circle.rb +39 -0
  42. data/lib/squib/dsl/csv.rb +42 -0
  43. data/lib/squib/dsl/curve.rb +35 -0
  44. data/lib/squib/dsl/cut_zone.rb +47 -0
  45. data/lib/squib/dsl/ellipse.rb +37 -0
  46. data/lib/squib/dsl/grid.rb +35 -0
  47. data/lib/squib/{api → dsl}/groups.rb +0 -0
  48. data/lib/squib/dsl/hand.rb +42 -0
  49. data/lib/squib/dsl/line.rb +35 -0
  50. data/lib/squib/dsl/png.rb +56 -0
  51. data/lib/squib/dsl/polygon.rb +36 -0
  52. data/lib/squib/dsl/rect.rb +37 -0
  53. data/lib/squib/dsl/safe_zone.rb +48 -0
  54. data/lib/squib/dsl/save.rb +21 -0
  55. data/lib/squib/dsl/save_pdf.rb +50 -0
  56. data/lib/squib/dsl/save_png.rb +48 -0
  57. data/lib/squib/dsl/save_sheet.rb +53 -0
  58. data/lib/squib/dsl/showcase.rb +43 -0
  59. data/lib/squib/dsl/star.rb +37 -0
  60. data/lib/squib/dsl/svg.rb +62 -0
  61. data/lib/squib/dsl/text.rb +54 -0
  62. data/lib/squib/dsl/text_embed.rb +78 -0
  63. data/lib/squib/dsl/triangle.rb +35 -0
  64. data/lib/squib/{api → dsl}/units.rb +10 -0
  65. data/lib/squib/dsl/xlsx.rb +40 -0
  66. data/lib/squib/dsl/yaml.rb +40 -0
  67. data/lib/squib/errors_warnings/warn_unexpected_params.rb +14 -0
  68. data/lib/squib/graphics/cairo_context_wrapper.rb +8 -6
  69. data/lib/squib/graphics/save_images.rb +54 -15
  70. data/lib/squib/graphics/save_sprue.rb +14 -2
  71. data/lib/squib/graphics/text.rb +37 -9
  72. data/lib/squib/import/csv_importer.rb +45 -0
  73. data/lib/squib/import/quantity_exploder.rb +18 -0
  74. data/lib/squib/import/xlsx_importer.rb +28 -0
  75. data/lib/squib/import/yaml_importer.rb +30 -0
  76. data/lib/squib/layout_parser.rb +24 -7
  77. data/lib/squib/sprues/crop_line.rb +6 -6
  78. data/lib/squib/sprues/crop_line_dash.rb +6 -6
  79. data/lib/squib/sprues/sprue.rb +16 -14
  80. data/lib/squib/system_fonts.rb +17 -0
  81. data/lib/squib/version.rb +2 -1
  82. data/samples/autoscale_font/_autoscale_font.rb +77 -8
  83. data/samples/colors/_switch_color.rb +2 -2
  84. data/samples/data/_excel.rb +1 -1
  85. data/samples/ranges/_ranges.rb +1 -1
  86. data/samples/saves/_save_filenames.rb +4 -0
  87. data/samples/saves/_save_pdf.rb +1 -1
  88. data/samples/saves/_saves.rb +12 -1
  89. data/samples/shadows/_shadow.rb +72 -0
  90. data/samples/shapes/_draw_shapes.rb +2 -2
  91. data/samples/sprues/_builtin_sprues.rb +1 -0
  92. data/samples/sprues/_fold_sheet.rb +4 -1
  93. data/samples/system_font_debug/_list_fonts.rb +14 -0
  94. data/samples/text/_text.rb +6 -1
  95. data/samples/text/_text_options.rb +2 -1
  96. data/samples/units/_cells.rb +51 -0
  97. data/samples/units/_shorthands.rb +48 -0
  98. data/samples/units/_units.rb +7 -0
  99. data/squib.gemspec +14 -8
  100. metadata +134 -39
  101. data/.travis.yml +0 -17
  102. data/appveyor.yml +0 -25
  103. data/lib/squib/api/background.rb +0 -15
  104. data/lib/squib/api/data.rb +0 -137
  105. data/lib/squib/api/image.rb +0 -49
  106. data/lib/squib/api/save.rb +0 -83
  107. data/lib/squib/api/shapes.rb +0 -124
  108. data/lib/squib/api/text.rb +0 -25
  109. data/lib/squib/api/text_embed.rb +0 -71
@@ -0,0 +1,14 @@
1
+ # require 'squib'
2
+ require_relative '../../lib/squib'
3
+
4
+ # Per issue #334, sometimes Pango doesn't find the font file you want
5
+ # Pango requires fonts to be installed on the system, but sometimes the
6
+ # font name is not obvious. e.g. "Foo Regular" might be actually named "Foo"
7
+ # Use these methods to debug this problem
8
+
9
+ # Usually you would just run this method to see what fonts are installed
10
+ # This is commented out to make our test cases
11
+ # Squib.print_system_fonts
12
+
13
+ Squib.system_fonts.include? 'Open Sans' # checks if we have Open Sans installed
14
+ # Note: does nothing since it's just a check
@@ -1,7 +1,7 @@
1
1
  require 'squib'
2
2
  require 'squib/sample_helpers'
3
3
 
4
- Squib::Deck.new(width: 1000, height: 1250) do
4
+ Squib::Deck.new(width: 1000, height: 1450) do
5
5
  draw_graph_paper width, height
6
6
 
7
7
  sample 'Font strings are quite expressive. Specify family, modifiers, then size. Font names with spaces in them should end with a comma to help with parsing.' do |x, y|
@@ -21,6 +21,11 @@ Squib::Deck.new(width: 1000, height: 1250) do
21
21
  hint: :red, width: 350, font: 'Serif bold 7'
22
22
  end
23
23
 
24
+ sample 'If you specify ellipsize: :autosize, the font size will autoscale.' do |x, y|
25
+ text str: 'This text doeas not fit with font size 7. It is autoscaled to the largest size that fits instead.', x: x - 50, y: y,
26
+ hint: :red, width: 350, height: 100, ellipsize: :autoscale, font: 'Serif bold 7'
27
+ end
28
+
24
29
  sample 'If you specify the width only, and turn off ellipsize, the height will auto-stretch.' do |x, y|
25
30
  text str: 'This has fixed width, but not fixed height.', x: x, y: y,
26
31
  hint: :red, width: 300, ellipsize: false, font: 'Serif bold 8'
@@ -1,5 +1,6 @@
1
1
  # encoding: UTF-8
2
- require 'squib'
2
+ # require 'squib'
3
+ require_relative '../../lib/squib'
3
4
 
4
5
  data = { 'name' => ['Thief', 'Grifter', 'Mastermind'],
5
6
  'level' => [1, 2, 3] }
@@ -0,0 +1,51 @@
1
+ require 'squib'
2
+
3
+ Squib::Deck.new(width: '1.5in', height: '1.5in') do
4
+ background color: :white
5
+
6
+ # Squib has a custom unit, called "cell"
7
+ # A "cell" unit defaults to 37.5px, which at 300dpi is 1/8in or 3.175mm
8
+ # This is a very common multiple for layouts.
9
+ # This helps us lay things out in grids without doing much math in our heads
10
+ # Here's an example... with grid!
11
+ grid width: '1 cell', height: '1 cell'
12
+
13
+ # Plurals are fine or just 'c' as a unit is fine
14
+ # Whitespace is pretty lenient too.
15
+ rect fill_color: :blue,
16
+ x: '1 cell', y: '2 cells',
17
+ width: '1c', height: '1cell '
18
+
19
+ # Technically, the "cell" is actually a "unit", so you can even combine
20
+ # with xywh shorhands!!
21
+ rect fill_color: :red,
22
+ x: 'middle + 0.5c', y: 'deck - 1.5c',
23
+ width: '1c', height: '1c'
24
+
25
+ # And, unlike xywh shorthands, this applies basically everywhere we support
26
+ # unit conversion.
27
+ circle fill_color: :green,
28
+ x: '3c', y: '2c', radius: '1c'
29
+ # Decimals are fine too
30
+ circle fill_color: :green,
31
+ x: '5c', y: '2c', radius: '0.5c'
32
+ # Even dashes!
33
+ circle fill_color: '#0000', stroke_color: :purple,
34
+ x: '1c', y: '4c', radius: '0.5c', dash: '0.25c 0.25c'
35
+
36
+ # We can also do stuff in layout. Check out the yml file...
37
+ # (even cleaner in Yaml since we don't need quotes!)
38
+ use_layout file: 'cells.yml'
39
+ rect layout: :example
40
+ rect layout: :extends_example
41
+
42
+ save_png prefix: 'cells_'
43
+ end
44
+
45
+
46
+ # You can customize this with the cell_px configuration option
47
+ Squib::Deck.new(width: 100, height: 100, config: 'cell_config.yml') do
48
+ background color: :white
49
+ rect x: '1c', y: '1c', width: '1c', height: '1c', fill_color: :purple
50
+ save_png prefix: 'custom_cell_'
51
+ end
@@ -0,0 +1,48 @@
1
+ require_relative '../../lib/squib'
2
+
3
+ # Lots of DSL methods have shorthands that are accepted for
4
+ # x, y, width, and height parameters.
5
+ Squib::Deck.new(width: '0.5in', height: '0.25in') do
6
+ background color: :white
7
+
8
+ # middle for x and y will resolve to half the height
9
+ text str: 'xymiddle', font: 'Sans Bold 3', hint: :red,
10
+ x: 'middle', y: :middle
11
+
12
+ # 'center' also works
13
+ rect width: 30, height: 30,
14
+ x: :center, y: 'center'
15
+
16
+ # Applies to shapes
17
+ triangle x1: 20, y1: 20,
18
+ x2: 60, y2: 20,
19
+ x3: :middle, y3: :middle
20
+
21
+ # We can also do width-, height-, width/, height/
22
+ rect x: 20, y: 5, stroke_color: :green,
23
+ width: 'deck - 0.1in', height: 10
24
+
25
+ rect x: 10, y: 50, width: 10, height: 'deck / 3',
26
+ stroke_color: :purple
27
+
28
+ # And middle+/-
29
+ rect x: 'middle + 0.1in', y: 'center - 0.1in',
30
+ width: '0.1in', height: '0.1in', fill_color: :blue
31
+
32
+ # Layouts apply this too.
33
+ use_layout file: 'shorthands.yml'
34
+ rect layout: :example
35
+
36
+ # HOWEVER! Shorthands don't combine in an "extends" situation,
37
+ # e.g. this won't work:
38
+ # parent:
39
+ # x: middle
40
+ # child:
41
+ # extends: parent
42
+ # x: += 0.5in
43
+
44
+ # These shorthands are not intended for every xywh parameter or
45
+ # length parameter, see docs for when they do or do not apply.
46
+
47
+ save_png prefix: 'shorthand_'
48
+ end
@@ -23,10 +23,17 @@ Squib::Deck.new(width: '1.5in', height: '1.5in') do
23
23
  width: safe_width, height: safe_height,
24
24
  radius: '2 mm '
25
25
 
26
+ # Angles are also automatically converted to radians if you use deg
27
+ svg file: '../spanner.svg',
28
+ x: 100, y: 100, width: 40, height: 40, angle: '30deg'
29
+
26
30
  # We can also do stuff in layout. Check out the yml file...
27
31
  # (even cleaner in Yaml since we don't need quotes!)
28
32
  use_layout file: 'using_units.yml'
29
33
  text str: 'Hello.', layout: :example
34
+ svg file: '../spanner.svg', layout: :angled
30
35
 
31
36
  save prefix: 'units_', format: :png
37
+
38
+ # But wait... there's more! See _shorthands.rb for more fanciness with units
32
39
  end
data/squib.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.specification_version = 2 if spec.respond_to? :specification_version=
8
8
  spec.required_rubygems_version = Gem::Requirement.new('>= 0') if spec.respond_to? :required_rubygems_version=
9
9
  spec.rubygems_version = '2.2.2'
10
- spec.required_ruby_version = '>= 2.4.0'
10
+ spec.required_ruby_version = '>= 2.5.0'
11
11
 
12
12
  spec.name = 'squib'
13
13
  spec.version = Squib::VERSION
@@ -15,9 +15,11 @@ Gem::Specification.new do |spec|
15
15
 
16
16
  spec.summary = 'A Ruby DSL for prototyping card games'
17
17
  spec.description = 'Squib is a Ruby DSL for prototyping card games'
18
+ spec.post_install_message = 'Happy Squibbing!'
18
19
  spec.authors = ['Andy Meneely']
19
20
  spec.email = 'andy.meneely@gmail.com'
20
21
  spec.homepage = 'https://github.com/andymeneely/squib'
22
+ spec.requirements << 'On Windows, you need the Ruby+DevKit. See https://rubyinstaller.org/downloads'
21
23
 
22
24
  spec.rdoc_options = ['--charset=UTF-8']
23
25
  spec.extra_rdoc_files = Dir['README.md', 'samples/**/*.rb']
@@ -29,20 +31,24 @@ Gem::Specification.new do |spec|
29
31
  spec.test_files = spec.files.grep(/^(spec|samples|docs|benchmarks)\//)
30
32
  spec.require_paths = ['lib']
31
33
 
32
- spec.add_runtime_dependency 'cairo', '~> 1.16'
33
- spec.add_runtime_dependency 'classy_hash', '0.2.1'
34
+ spec.add_runtime_dependency 'cairo', '~> 1.17'
35
+ spec.add_runtime_dependency 'classy_hash', '1.0.0'
34
36
  spec.add_runtime_dependency 'gio2', '~> 3.4'
35
37
  spec.add_runtime_dependency 'gobject-introspection', '~> 3.4'
36
- spec.add_runtime_dependency 'highline', '2.0.2'
37
- spec.add_runtime_dependency 'mercenary', '0.3.6'
38
- spec.add_runtime_dependency 'nokogiri', '1.10.4'
38
+ spec.add_runtime_dependency 'highline', '2.0.3'
39
+ spec.add_runtime_dependency 'mercenary', '0.4.0'
40
+ spec.add_runtime_dependency 'nokogiri', '~> 1.11'
39
41
  spec.add_runtime_dependency 'pango', '~> 3.4'
40
- spec.add_runtime_dependency 'roo', '2.8.2'
42
+ spec.add_runtime_dependency 'rainbow', '~> 3.0'
43
+ spec.add_runtime_dependency 'roo', '~> 2.8'
41
44
  spec.add_runtime_dependency 'rsvg2', '~> 3.4'
42
- spec.add_runtime_dependency 'ruby-progressbar', '~> 1.10'
45
+ spec.add_runtime_dependency 'ruby-progressbar', '~> 1.11'
43
46
 
47
+ spec.add_development_dependency 'activesupport'
44
48
  spec.add_development_dependency 'bundler'
45
49
  spec.add_development_dependency 'coveralls', '>= 0.8.21'
50
+ spec.add_development_dependency 'guard'
51
+ spec.add_development_dependency 'guard-rake'
46
52
  spec.add_development_dependency 'game_icons'
47
53
  spec.add_development_dependency 'launchy'
48
54
  spec.add_development_dependency 'rake'
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.15.3
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Meneely
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-17 00:00:00.000000000 Z
11
+ date: 2021-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cairo
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '1.17'
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.16'
26
+ version: '1.17'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: classy_hash
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.1
33
+ version: 1.0.0
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: 0.2.1
40
+ version: 1.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: gio2
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,42 +72,42 @@ dependencies:
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 2.0.2
75
+ version: 2.0.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 2.0.2
82
+ version: 2.0.3
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: mercenary
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 0.3.6
89
+ version: 0.4.0
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 0.3.6
96
+ version: 0.4.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: nokogiri
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '='
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.10.4
103
+ version: '1.11'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '='
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.10.4
110
+ version: '1.11'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pango
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -122,20 +122,34 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '3.4'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rainbow
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: roo
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - '='
143
+ - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: 2.8.2
145
+ version: '2.8'
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - '='
150
+ - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: 2.8.2
152
+ version: '2.8'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: rsvg2
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +170,28 @@ dependencies:
156
170
  requirements:
157
171
  - - "~>"
158
172
  - !ruby/object:Gem::Version
159
- version: '1.10'
173
+ version: '1.11'
160
174
  type: :runtime
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - "~>"
165
179
  - !ruby/object:Gem::Version
166
- version: '1.10'
180
+ version: '1.11'
181
+ - !ruby/object:Gem::Dependency
182
+ name: activesupport
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
167
195
  - !ruby/object:Gem::Dependency
168
196
  name: bundler
169
197
  requirement: !ruby/object:Gem::Requirement
@@ -192,6 +220,34 @@ dependencies:
192
220
  - - ">="
193
221
  - !ruby/object:Gem::Version
194
222
  version: 0.8.21
223
+ - !ruby/object:Gem::Dependency
224
+ name: guard
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: guard-rake
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
195
251
  - !ruby/object:Gem::Dependency
196
252
  name: game_icons
197
253
  requirement: !ruby/object:Gem::Requirement
@@ -298,10 +354,11 @@ extra_rdoc_files:
298
354
  - samples/ranges/_ranges.rb
299
355
  - samples/saves/_hand.rb
300
356
  - samples/saves/_portrait_landscape.rb
301
- - samples/saves/_saves.rb
302
357
  - samples/saves/_save_filenames.rb
303
358
  - samples/saves/_save_pdf.rb
359
+ - samples/saves/_saves.rb
304
360
  - samples/saves/_showcase.rb
361
+ - samples/shadows/_shadow.rb
305
362
  - samples/shapes/_draw_shapes.rb
306
363
  - samples/shapes/_proofs.rb
307
364
  - samples/sprues/_advanced_sprues.rb
@@ -310,35 +367,29 @@ extra_rdoc_files:
310
367
  - samples/sprues/_hex_tiles.rb
311
368
  - samples/sprues/_mints.rb
312
369
  - samples/sprues/_sprue_example.rb
313
- - samples/text/bug134.rb
370
+ - samples/system_font_debug/_list_fonts.rb
314
371
  - samples/text/_embed_text.rb
315
372
  - samples/text/_text.rb
316
373
  - samples/text/_text_options.rb
374
+ - samples/text/bug134.rb
375
+ - samples/units/_cells.rb
376
+ - samples/units/_shorthands.rb
317
377
  - samples/units/_units.rb
318
378
  files:
379
+ - ".github/workflows/tests.yml"
319
380
  - ".gitignore"
320
- - ".travis.yml"
321
381
  - CHANGELOG.md
322
382
  - CONTRIBUTING.md
323
383
  - Dockerfile
324
384
  - Gemfile
385
+ - Guardfile
325
386
  - LICENSE.txt
326
387
  - README.md
327
388
  - RELEASE TODO.md
328
389
  - Rakefile
329
- - appveyor.yml
330
390
  - bin/squib
331
391
  - lib/squib.rb
332
- - lib/squib/api/background.rb
333
- - lib/squib/api/data.rb
334
- - lib/squib/api/groups.rb
335
- - lib/squib/api/image.rb
336
- - lib/squib/api/save.rb
337
392
  - lib/squib/api/settings.rb
338
- - lib/squib/api/shapes.rb
339
- - lib/squib/api/text.rb
340
- - lib/squib/api/text_embed.rb
341
- - lib/squib/api/units.rb
342
393
  - lib/squib/args/arg_loader.rb
343
394
  - lib/squib/args/box.rb
344
395
  - lib/squib/args/card_range.rb
@@ -347,6 +398,7 @@ files:
347
398
  - lib/squib/args/csv_opts.rb
348
399
  - lib/squib/args/dir_validator.rb
349
400
  - lib/squib/args/draw.rb
401
+ - lib/squib/args/drop_shadow.rb
350
402
  - lib/squib/args/embed_adjust.rb
351
403
  - lib/squib/args/embed_key.rb
352
404
  - lib/squib/args/hand_special.rb
@@ -363,6 +415,7 @@ files:
363
415
  - lib/squib/args/transform.rb
364
416
  - lib/squib/args/typographer.rb
365
417
  - lib/squib/args/unit_conversion.rb
418
+ - lib/squib/args/xywh_shorthands.rb
366
419
  - lib/squib/builtin/layouts/economy.yml
367
420
  - lib/squib/builtin/layouts/fantasy.yml
368
421
  - lib/squib/builtin/layouts/hand.yml
@@ -413,6 +466,34 @@ files:
413
466
  - lib/squib/conf.rb
414
467
  - lib/squib/constants.rb
415
468
  - lib/squib/deck.rb
469
+ - lib/squib/dsl/background.rb
470
+ - lib/squib/dsl/circle.rb
471
+ - lib/squib/dsl/csv.rb
472
+ - lib/squib/dsl/curve.rb
473
+ - lib/squib/dsl/cut_zone.rb
474
+ - lib/squib/dsl/ellipse.rb
475
+ - lib/squib/dsl/grid.rb
476
+ - lib/squib/dsl/groups.rb
477
+ - lib/squib/dsl/hand.rb
478
+ - lib/squib/dsl/line.rb
479
+ - lib/squib/dsl/png.rb
480
+ - lib/squib/dsl/polygon.rb
481
+ - lib/squib/dsl/rect.rb
482
+ - lib/squib/dsl/safe_zone.rb
483
+ - lib/squib/dsl/save.rb
484
+ - lib/squib/dsl/save_pdf.rb
485
+ - lib/squib/dsl/save_png.rb
486
+ - lib/squib/dsl/save_sheet.rb
487
+ - lib/squib/dsl/showcase.rb
488
+ - lib/squib/dsl/star.rb
489
+ - lib/squib/dsl/svg.rb
490
+ - lib/squib/dsl/text.rb
491
+ - lib/squib/dsl/text_embed.rb
492
+ - lib/squib/dsl/triangle.rb
493
+ - lib/squib/dsl/units.rb
494
+ - lib/squib/dsl/xlsx.rb
495
+ - lib/squib/dsl/yaml.rb
496
+ - lib/squib/errors_warnings/warn_unexpected_params.rb
416
497
  - lib/squib/graphics/background.rb
417
498
  - lib/squib/graphics/cairo_context_wrapper.rb
418
499
  - lib/squib/graphics/embedding_utils.rb
@@ -426,7 +507,11 @@ files:
426
507
  - lib/squib/graphics/shapes.rb
427
508
  - lib/squib/graphics/showcase.rb
428
509
  - lib/squib/graphics/text.rb
510
+ - lib/squib/import/csv_importer.rb
429
511
  - lib/squib/import/data_frame.rb
512
+ - lib/squib/import/quantity_exploder.rb
513
+ - lib/squib/import/xlsx_importer.rb
514
+ - lib/squib/import/yaml_importer.rb
430
515
  - lib/squib/layout_parser.rb
431
516
  - lib/squib/progress.rb
432
517
  - lib/squib/sample_helpers.rb
@@ -435,6 +520,7 @@ files:
435
520
  - lib/squib/sprues/invalid_sprue_definition.rb
436
521
  - lib/squib/sprues/sprue.rb
437
522
  - lib/squib/sprues/sprue_schema.rb
523
+ - lib/squib/system_fonts.rb
438
524
  - lib/squib/version.rb
439
525
  - samples/autoscale_font/_autoscale_font.rb
440
526
  - samples/backend/_backend.rb
@@ -469,6 +555,7 @@ files:
469
555
  - samples/saves/_save_pdf.rb
470
556
  - samples/saves/_saves.rb
471
557
  - samples/saves/_showcase.rb
558
+ - samples/shadows/_shadow.rb
472
559
  - samples/shapes/_draw_shapes.rb
473
560
  - samples/shapes/_proofs.rb
474
561
  - samples/sprues/_advanced_sprues.rb
@@ -477,17 +564,20 @@ files:
477
564
  - samples/sprues/_hex_tiles.rb
478
565
  - samples/sprues/_mints.rb
479
566
  - samples/sprues/_sprue_example.rb
567
+ - samples/system_font_debug/_list_fonts.rb
480
568
  - samples/text/_embed_text.rb
481
569
  - samples/text/_text.rb
482
570
  - samples/text/_text_options.rb
483
571
  - samples/text/bug134.rb
572
+ - samples/units/_cells.rb
573
+ - samples/units/_shorthands.rb
484
574
  - samples/units/_units.rb
485
575
  - squib.gemspec
486
576
  homepage: https://github.com/andymeneely/squib
487
577
  licenses:
488
578
  - MIT
489
579
  metadata: {}
490
- post_install_message:
580
+ post_install_message: Happy Squibbing!
491
581
  rdoc_options:
492
582
  - "--charset=UTF-8"
493
583
  require_paths:
@@ -496,15 +586,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
496
586
  requirements:
497
587
  - - ">="
498
588
  - !ruby/object:Gem::Version
499
- version: 2.4.0
589
+ version: 2.5.0
500
590
  required_rubygems_version: !ruby/object:Gem::Requirement
501
591
  requirements:
502
592
  - - ">="
503
593
  - !ruby/object:Gem::Version
504
594
  version: '0'
505
- requirements: []
506
- rubygems_version: 3.0.3
507
- signing_key:
595
+ requirements:
596
+ - On Windows, you need the Ruby+DevKit. See https://rubyinstaller.org/downloads
597
+ rubygems_version: 3.2.15
598
+ signing_key:
508
599
  specification_version: 2
509
600
  summary: A Ruby DSL for prototyping card games
510
601
  test_files:
@@ -541,6 +632,7 @@ test_files:
541
632
  - samples/saves/_save_pdf.rb
542
633
  - samples/saves/_saves.rb
543
634
  - samples/saves/_showcase.rb
635
+ - samples/shadows/_shadow.rb
544
636
  - samples/shapes/_draw_shapes.rb
545
637
  - samples/shapes/_proofs.rb
546
638
  - samples/sprues/_advanced_sprues.rb
@@ -549,8 +641,11 @@ test_files:
549
641
  - samples/sprues/_hex_tiles.rb
550
642
  - samples/sprues/_mints.rb
551
643
  - samples/sprues/_sprue_example.rb
644
+ - samples/system_font_debug/_list_fonts.rb
552
645
  - samples/text/_embed_text.rb
553
646
  - samples/text/_text.rb
554
647
  - samples/text/_text_options.rb
555
648
  - samples/text/bug134.rb
649
+ - samples/units/_cells.rb
650
+ - samples/units/_shorthands.rb
556
651
  - samples/units/_units.rb