squib 0.14.3.pre1 → 0.16.0.pre.preview1

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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests.yml +22 -0
  3. data/CHANGELOG.md +58 -2
  4. data/Dockerfile +27 -0
  5. data/Guardfile +8 -0
  6. data/README.md +24 -6
  7. data/RELEASE TODO.md +1 -0
  8. data/Rakefile +3 -0
  9. data/lib/squib.rb +3 -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/embed_adjust.rb +12 -15
  19. data/lib/squib/args/embed_key.rb +6 -11
  20. data/lib/squib/args/hand_special.rb +25 -25
  21. data/lib/squib/args/import.rb +54 -27
  22. data/lib/squib/args/input_file.rb +22 -26
  23. data/lib/squib/args/paint.rb +30 -31
  24. data/lib/squib/args/paragraph.rb +95 -93
  25. data/lib/squib/args/save_batch.rb +50 -48
  26. data/lib/squib/args/scale_box.rb +43 -39
  27. data/lib/squib/args/sheet.rb +147 -149
  28. data/lib/squib/args/showcase_special.rb +32 -29
  29. data/lib/squib/args/sprue_file.rb +30 -30
  30. data/lib/squib/args/svg_special.rb +26 -26
  31. data/lib/squib/args/transform.rb +48 -54
  32. data/lib/squib/args/typographer.rb +88 -92
  33. data/lib/squib/args/unit_conversion.rb +6 -8
  34. data/lib/squib/args/xywh_shorthands.rb +56 -0
  35. data/lib/squib/builtin/projects/advanced/config.yml +3 -6
  36. data/lib/squib/builtin/projects/basic/config.yml +3 -6
  37. data/lib/squib/commands/make_sprue.rb +2 -0
  38. data/lib/squib/conf.rb +5 -5
  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 +47 -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 +2 -2
  69. data/lib/squib/graphics/image.rb +0 -6
  70. data/lib/squib/graphics/save_images.rb +3 -3
  71. data/lib/squib/graphics/save_sprue.rb +39 -12
  72. data/lib/squib/graphics/showcase.rb +1 -1
  73. data/lib/squib/graphics/text.rb +37 -9
  74. data/lib/squib/import/csv_importer.rb +45 -0
  75. data/lib/squib/import/quantity_exploder.rb +18 -0
  76. data/lib/squib/import/xlsx_importer.rb +28 -0
  77. data/lib/squib/import/yaml_importer.rb +30 -0
  78. data/lib/squib/layout_parser.rb +24 -7
  79. data/lib/squib/sprues/crop_line.rb +6 -6
  80. data/lib/squib/sprues/crop_line_dash.rb +6 -6
  81. data/lib/squib/sprues/sprue.rb +19 -14
  82. data/lib/squib/sprues/sprue_schema.rb +4 -2
  83. data/lib/squib/version.rb +1 -1
  84. data/samples/autoscale_font/_autoscale_font.rb +77 -8
  85. data/samples/colors/_colors.rb +11 -5
  86. data/samples/colors/_switch_color.rb +33 -0
  87. data/samples/data/_excel.rb +1 -1
  88. data/samples/images/_more_load_images.rb +1 -1
  89. data/samples/ranges/_ranges.rb +1 -1
  90. data/samples/saves/_save_filenames.rb +28 -0
  91. data/samples/saves/_save_pdf.rb +1 -1
  92. data/samples/saves/_saves.rb +2 -1
  93. data/samples/shapes/_draw_shapes.rb +2 -2
  94. data/samples/sprues/_advanced_sprues.rb +4 -3
  95. data/samples/sprues/_builtin_sprues.rb +1 -0
  96. data/samples/sprues/_fold_sheet.rb +4 -1
  97. data/samples/text/_text.rb +6 -1
  98. data/samples/text/_text_options.rb +2 -1
  99. data/samples/units/_cells.rb +51 -0
  100. data/samples/units/_shorthands.rb +49 -0
  101. data/samples/units/_units.rb +7 -0
  102. data/squib.gemspec +19 -13
  103. metadata +151 -61
  104. data/.travis.yml +0 -19
  105. data/appveyor.yml +0 -24
  106. data/lib/squib/api/background.rb +0 -15
  107. data/lib/squib/api/data.rb +0 -137
  108. data/lib/squib/api/image.rb +0 -49
  109. data/lib/squib/api/save.rb +0 -83
  110. data/lib/squib/api/shapes.rb +0 -124
  111. data/lib/squib/api/text.rb +0 -25
  112. data/lib/squib/api/text_embed.rb +0 -71
  113. data/samples/bug256/_bug256.rb +0 -13
@@ -1,4 +1,5 @@
1
- require 'squib'
1
+ # require 'squib'
2
+ require_relative '../../lib/squib'
2
3
 
3
4
  # This is a more advanced example of Sprues
4
5
  # (mostly so we can have a torturous regression test)
@@ -14,10 +15,10 @@ Squib::Deck.new(cards: 6, width: '2.2in', height: '2.1in') do
14
15
 
15
16
  circle x: width/2, y: height/2, radius: 20 # midpoint
16
17
 
17
- text str: (0..9).map{ |i| "Card #{i}\n\n" },
18
+ text str: (0..9).map{ |i| "Card! #{i}\n\n" },
18
19
  font: 'Sans 32', align: :center, valign: :middle,
19
20
  height: :deck, width: :deck
20
-
21
+
21
22
  save_sheet sprue: 'my_sprues/weird_sprue.yml',
22
23
  trim: '0.2in', trim_radius: '10pt',
23
24
  prefix: "advanced_sprues_"
@@ -17,5 +17,6 @@ Squib::Deck.new(width: '50mm', height: '70mm', cards: 9) do
17
17
  drivethrucards_1up.yml
18
18
  ).each do |builtin|
19
19
  save_sheet sprue: builtin, prefix: "sprue_#{builtin}_"
20
+ save_pdf sprue: builtin, file: "sprue_#{builtin}_"
20
21
  end
21
22
  end
@@ -22,6 +22,9 @@ Squib::Deck.new(width: '2.5in', height: '3.5in', cards: 8) do
22
22
 
23
23
  text str: strings,font: 'Sans 32', align: :center, valign: :middle,
24
24
  height: :deck, width: :deck
25
+
25
26
  save_sheet prefix: 'foldable_',
26
- sprue: 'letter_poker_foldable_8up.yml'
27
+ sprue: 'letter_poker_foldable_8up.yml' # built-in sprue
28
+ save_pdf file: 'foldable.pdf',
29
+ sprue: 'letter_poker_foldable_8up.yml' # built-in sprue
27
30
  end
@@ -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: 'height - 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,49 @@
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: 'width - 0.1in', height: 10
24
+
25
+ rect x: 10, y: 50, width: 10, height: 'height / 3',
26
+ stroke_color: :purple
27
+
28
+ # And middle+/-
29
+
30
+ rect x: 'middle + 0.1in', y: 'middle - 0.1in',
31
+ width: '0.1in', height: '0.1in', fill_color: :blue
32
+
33
+ # Layouts apply this too.
34
+ use_layout file: 'shorthands.yml'
35
+ rect layout: :example
36
+
37
+ # HOWEVER! Shorthands don't combine in an "extends" situation,
38
+ # e.g. this won't work:
39
+ # parent:
40
+ # x: middle
41
+ # child:
42
+ # extends: parent
43
+ # x: += 0.5in
44
+
45
+ # These shorthands are not intended for every xywh parameter or
46
+ # length parameter, see docs for when they do or do not apply.
47
+
48
+ save_png prefix: 'shorthand_'
49
+ 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
@@ -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.2.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,24 +31,28 @@ 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.15.14'
34
+ spec.add_runtime_dependency 'cairo', '~> 1.16'
33
35
  spec.add_runtime_dependency 'classy_hash', '0.2.1'
34
- spec.add_runtime_dependency 'gio2', '3.2.9'
35
- spec.add_runtime_dependency 'gobject-introspection', '3.2.9'
36
- spec.add_runtime_dependency 'highline', '1.7.10'
37
- spec.add_runtime_dependency 'mercenary', '0.3.6'
38
- spec.add_runtime_dependency 'nokogiri', '1.8.4'
39
- spec.add_runtime_dependency 'pango', '3.2.9'
40
- spec.add_runtime_dependency 'roo', '2.7.1'
41
- spec.add_runtime_dependency 'rsvg2', '3.2.9'
42
- spec.add_runtime_dependency 'ruby-progressbar', '1.9.0'
43
-
36
+ spec.add_runtime_dependency 'gio2', '~> 3.4'
37
+ spec.add_runtime_dependency 'gobject-introspection', '~> 3.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.10'
41
+ spec.add_runtime_dependency 'pango', '~> 3.4'
42
+ spec.add_runtime_dependency 'rainbow', '~> 3.0'
43
+ spec.add_runtime_dependency 'roo', '~> 2.8'
44
+ spec.add_runtime_dependency 'rsvg2', '~> 3.4'
45
+ spec.add_runtime_dependency 'ruby-progressbar', '~> 1.10'
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'
49
55
  spec.add_development_dependency 'byebug'
50
- spec.add_development_dependency 'rspec', '~> 3.3'
56
+ spec.add_development_dependency 'rspec', '~> 3.8'
51
57
 
52
58
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.3.pre1
4
+ version: 0.16.0.pre.preview1
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: 2018-10-19 00:00:00.000000000 Z
11
+ date: 2020-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cairo
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.15.14
19
+ version: '1.16'
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.15.14
26
+ version: '1.16'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: classy_hash
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,128 +42,156 @@ dependencies:
42
42
  name: gio2
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.2.9
47
+ version: '3.4'
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: 3.2.9
54
+ version: '3.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: gobject-introspection
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 3.2.9
61
+ version: '3.4'
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: 3.2.9
68
+ version: '3.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: highline
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 1.7.10
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: 1.7.10
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.8.4
103
+ version: '1.10'
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.8.4
110
+ version: '1.10'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pango
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '='
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 3.2.9
117
+ version: '3.4'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '='
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 3.2.9
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.7.1
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.7.1
152
+ version: '2.8'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: rsvg2
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - '='
157
+ - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: 3.2.9
159
+ version: '3.4'
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - '='
164
+ - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: 3.2.9
166
+ version: '3.4'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: ruby-progressbar
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - '='
171
+ - - "~>"
158
172
  - !ruby/object:Gem::Version
159
- version: 1.9.0
173
+ version: '1.10'
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.9.0
180
+ version: '1.10'
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
@@ -254,14 +310,14 @@ dependencies:
254
310
  requirements:
255
311
  - - "~>"
256
312
  - !ruby/object:Gem::Version
257
- version: '3.3'
313
+ version: '3.8'
258
314
  type: :development
259
315
  prerelease: false
260
316
  version_requirements: !ruby/object:Gem::Requirement
261
317
  requirements:
262
318
  - - "~>"
263
319
  - !ruby/object:Gem::Version
264
- version: '3.3'
320
+ version: '3.8'
265
321
  description: Squib is a Ruby DSL for prototyping card games
266
322
  email: andy.meneely@gmail.com
267
323
  executables:
@@ -272,10 +328,10 @@ extra_rdoc_files:
272
328
  - samples/autoscale_font/_autoscale_font.rb
273
329
  - samples/backend/_backend.rb
274
330
  - samples/basic.rb
275
- - samples/bug256/_bug256.rb
276
331
  - samples/build_groups/build_groups.rb
277
332
  - samples/colors/_colors.rb
278
333
  - samples/colors/_gradients.rb
334
+ - samples/colors/_switch_color.rb
279
335
  - samples/config/config_text_markup.rb
280
336
  - samples/config/custom_config.rb
281
337
  - samples/data/_csv.rb
@@ -299,6 +355,7 @@ extra_rdoc_files:
299
355
  - samples/saves/_hand.rb
300
356
  - samples/saves/_portrait_landscape.rb
301
357
  - samples/saves/_saves.rb
358
+ - samples/saves/_save_filenames.rb
302
359
  - samples/saves/_save_pdf.rb
303
360
  - samples/saves/_showcase.rb
304
361
  - samples/shapes/_draw_shapes.rb
@@ -313,30 +370,24 @@ extra_rdoc_files:
313
370
  - samples/text/_embed_text.rb
314
371
  - samples/text/_text.rb
315
372
  - samples/text/_text_options.rb
373
+ - samples/units/_cells.rb
374
+ - samples/units/_shorthands.rb
316
375
  - samples/units/_units.rb
317
376
  files:
377
+ - ".github/workflows/tests.yml"
318
378
  - ".gitignore"
319
- - ".travis.yml"
320
379
  - CHANGELOG.md
321
380
  - CONTRIBUTING.md
381
+ - Dockerfile
322
382
  - Gemfile
383
+ - Guardfile
323
384
  - LICENSE.txt
324
385
  - README.md
325
386
  - RELEASE TODO.md
326
387
  - Rakefile
327
- - appveyor.yml
328
388
  - bin/squib
329
389
  - lib/squib.rb
330
- - lib/squib/api/background.rb
331
- - lib/squib/api/data.rb
332
- - lib/squib/api/groups.rb
333
- - lib/squib/api/image.rb
334
- - lib/squib/api/save.rb
335
390
  - lib/squib/api/settings.rb
336
- - lib/squib/api/shapes.rb
337
- - lib/squib/api/text.rb
338
- - lib/squib/api/text_embed.rb
339
- - lib/squib/api/units.rb
340
391
  - lib/squib/args/arg_loader.rb
341
392
  - lib/squib/args/box.rb
342
393
  - lib/squib/args/card_range.rb
@@ -361,6 +412,7 @@ files:
361
412
  - lib/squib/args/transform.rb
362
413
  - lib/squib/args/typographer.rb
363
414
  - lib/squib/args/unit_conversion.rb
415
+ - lib/squib/args/xywh_shorthands.rb
364
416
  - lib/squib/builtin/layouts/economy.yml
365
417
  - lib/squib/builtin/layouts/fantasy.yml
366
418
  - lib/squib/builtin/layouts/hand.yml
@@ -411,6 +463,34 @@ files:
411
463
  - lib/squib/conf.rb
412
464
  - lib/squib/constants.rb
413
465
  - lib/squib/deck.rb
466
+ - lib/squib/dsl/background.rb
467
+ - lib/squib/dsl/circle.rb
468
+ - lib/squib/dsl/csv.rb
469
+ - lib/squib/dsl/curve.rb
470
+ - lib/squib/dsl/cut_zone.rb
471
+ - lib/squib/dsl/ellipse.rb
472
+ - lib/squib/dsl/grid.rb
473
+ - lib/squib/dsl/groups.rb
474
+ - lib/squib/dsl/hand.rb
475
+ - lib/squib/dsl/line.rb
476
+ - lib/squib/dsl/png.rb
477
+ - lib/squib/dsl/polygon.rb
478
+ - lib/squib/dsl/rect.rb
479
+ - lib/squib/dsl/safe_zone.rb
480
+ - lib/squib/dsl/save.rb
481
+ - lib/squib/dsl/save_pdf.rb
482
+ - lib/squib/dsl/save_png.rb
483
+ - lib/squib/dsl/save_sheet.rb
484
+ - lib/squib/dsl/showcase.rb
485
+ - lib/squib/dsl/star.rb
486
+ - lib/squib/dsl/svg.rb
487
+ - lib/squib/dsl/text.rb
488
+ - lib/squib/dsl/text_embed.rb
489
+ - lib/squib/dsl/triangle.rb
490
+ - lib/squib/dsl/units.rb
491
+ - lib/squib/dsl/xlsx.rb
492
+ - lib/squib/dsl/yaml.rb
493
+ - lib/squib/errors_warnings/warn_unexpected_params.rb
414
494
  - lib/squib/graphics/background.rb
415
495
  - lib/squib/graphics/cairo_context_wrapper.rb
416
496
  - lib/squib/graphics/embedding_utils.rb
@@ -424,7 +504,11 @@ files:
424
504
  - lib/squib/graphics/shapes.rb
425
505
  - lib/squib/graphics/showcase.rb
426
506
  - lib/squib/graphics/text.rb
507
+ - lib/squib/import/csv_importer.rb
427
508
  - lib/squib/import/data_frame.rb
509
+ - lib/squib/import/quantity_exploder.rb
510
+ - lib/squib/import/xlsx_importer.rb
511
+ - lib/squib/import/yaml_importer.rb
428
512
  - lib/squib/layout_parser.rb
429
513
  - lib/squib/progress.rb
430
514
  - lib/squib/sample_helpers.rb
@@ -437,10 +521,10 @@ files:
437
521
  - samples/autoscale_font/_autoscale_font.rb
438
522
  - samples/backend/_backend.rb
439
523
  - samples/basic.rb
440
- - samples/bug256/_bug256.rb
441
524
  - samples/build_groups/build_groups.rb
442
525
  - samples/colors/_colors.rb
443
526
  - samples/colors/_gradients.rb
527
+ - samples/colors/_switch_color.rb
444
528
  - samples/config/config_text_markup.rb
445
529
  - samples/config/custom_config.rb
446
530
  - samples/data/_csv.rb
@@ -463,6 +547,7 @@ files:
463
547
  - samples/ranges/_ranges.rb
464
548
  - samples/saves/_hand.rb
465
549
  - samples/saves/_portrait_landscape.rb
550
+ - samples/saves/_save_filenames.rb
466
551
  - samples/saves/_save_pdf.rb
467
552
  - samples/saves/_saves.rb
468
553
  - samples/saves/_showcase.rb
@@ -478,13 +563,15 @@ files:
478
563
  - samples/text/_text.rb
479
564
  - samples/text/_text_options.rb
480
565
  - samples/text/bug134.rb
566
+ - samples/units/_cells.rb
567
+ - samples/units/_shorthands.rb
481
568
  - samples/units/_units.rb
482
569
  - squib.gemspec
483
570
  homepage: https://github.com/andymeneely/squib
484
571
  licenses:
485
572
  - MIT
486
573
  metadata: {}
487
- post_install_message:
574
+ post_install_message: Happy Squibbing!
488
575
  rdoc_options:
489
576
  - "--charset=UTF-8"
490
577
  require_paths:
@@ -493,26 +580,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
493
580
  requirements:
494
581
  - - ">="
495
582
  - !ruby/object:Gem::Version
496
- version: 2.2.0
583
+ version: 2.5.0
497
584
  required_rubygems_version: !ruby/object:Gem::Requirement
498
585
  requirements:
499
586
  - - ">"
500
587
  - !ruby/object:Gem::Version
501
588
  version: 1.3.1
502
- requirements: []
503
- rubyforge_project:
504
- rubygems_version: 2.7.7
505
- signing_key:
589
+ requirements:
590
+ - On Windows, you need the Ruby+DevKit. See https://rubyinstaller.org/downloads
591
+ rubygems_version: 3.1.4
592
+ signing_key:
506
593
  specification_version: 2
507
594
  summary: A Ruby DSL for prototyping card games
508
595
  test_files:
509
596
  - samples/autoscale_font/_autoscale_font.rb
510
597
  - samples/backend/_backend.rb
511
598
  - samples/basic.rb
512
- - samples/bug256/_bug256.rb
513
599
  - samples/build_groups/build_groups.rb
514
600
  - samples/colors/_colors.rb
515
601
  - samples/colors/_gradients.rb
602
+ - samples/colors/_switch_color.rb
516
603
  - samples/config/config_text_markup.rb
517
604
  - samples/config/custom_config.rb
518
605
  - samples/data/_csv.rb
@@ -535,6 +622,7 @@ test_files:
535
622
  - samples/ranges/_ranges.rb
536
623
  - samples/saves/_hand.rb
537
624
  - samples/saves/_portrait_landscape.rb
625
+ - samples/saves/_save_filenames.rb
538
626
  - samples/saves/_save_pdf.rb
539
627
  - samples/saves/_saves.rb
540
628
  - samples/saves/_showcase.rb
@@ -550,4 +638,6 @@ test_files:
550
638
  - samples/text/_text.rb
551
639
  - samples/text/_text_options.rb
552
640
  - samples/text/bug134.rb
641
+ - samples/units/_cells.rb
642
+ - samples/units/_shorthands.rb
553
643
  - samples/units/_units.rb