squib 0.15.3 → 0.16.0.pre.preview1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +22 -0
- data/CHANGELOG.md +22 -0
- data/Dockerfile +18 -16
- data/Guardfile +8 -0
- data/README.md +3 -9
- data/RELEASE TODO.md +1 -0
- data/Rakefile +3 -0
- data/lib/squib.rb +3 -1
- data/lib/squib/args/arg_loader.rb +109 -106
- data/lib/squib/args/box.rb +52 -48
- data/lib/squib/args/card_range.rb +26 -24
- data/lib/squib/args/color_validator.rb +4 -9
- data/lib/squib/args/coords.rb +39 -25
- data/lib/squib/args/csv_opts.rb +13 -16
- data/lib/squib/args/dir_validator.rb +7 -12
- data/lib/squib/args/draw.rb +69 -68
- data/lib/squib/args/embed_adjust.rb +12 -15
- data/lib/squib/args/embed_key.rb +6 -11
- data/lib/squib/args/hand_special.rb +25 -25
- data/lib/squib/args/import.rb +54 -27
- data/lib/squib/args/input_file.rb +22 -26
- data/lib/squib/args/paint.rb +30 -31
- data/lib/squib/args/paragraph.rb +95 -93
- data/lib/squib/args/save_batch.rb +50 -48
- data/lib/squib/args/scale_box.rb +43 -39
- data/lib/squib/args/sheet.rb +147 -149
- data/lib/squib/args/showcase_special.rb +32 -32
- data/lib/squib/args/sprue_file.rb +30 -30
- data/lib/squib/args/svg_special.rb +26 -26
- data/lib/squib/args/transform.rb +48 -54
- data/lib/squib/args/typographer.rb +88 -92
- data/lib/squib/args/unit_conversion.rb +6 -8
- data/lib/squib/args/xywh_shorthands.rb +56 -0
- data/lib/squib/builtin/projects/advanced/config.yml +4 -3
- data/lib/squib/builtin/projects/basic/config.yml +4 -3
- data/lib/squib/conf.rb +5 -0
- data/lib/squib/deck.rb +34 -12
- data/lib/squib/dsl/background.rb +35 -0
- data/lib/squib/dsl/circle.rb +39 -0
- data/lib/squib/dsl/csv.rb +42 -0
- data/lib/squib/dsl/curve.rb +35 -0
- data/lib/squib/dsl/cut_zone.rb +47 -0
- data/lib/squib/dsl/ellipse.rb +37 -0
- data/lib/squib/dsl/grid.rb +35 -0
- data/lib/squib/{api → dsl}/groups.rb +0 -0
- data/lib/squib/dsl/hand.rb +42 -0
- data/lib/squib/dsl/line.rb +35 -0
- data/lib/squib/dsl/png.rb +56 -0
- data/lib/squib/dsl/polygon.rb +36 -0
- data/lib/squib/dsl/rect.rb +37 -0
- data/lib/squib/dsl/safe_zone.rb +48 -0
- data/lib/squib/dsl/save.rb +21 -0
- data/lib/squib/dsl/save_pdf.rb +50 -0
- data/lib/squib/dsl/save_png.rb +47 -0
- data/lib/squib/dsl/save_sheet.rb +53 -0
- data/lib/squib/dsl/showcase.rb +43 -0
- data/lib/squib/dsl/star.rb +37 -0
- data/lib/squib/dsl/svg.rb +62 -0
- data/lib/squib/dsl/text.rb +54 -0
- data/lib/squib/dsl/text_embed.rb +78 -0
- data/lib/squib/dsl/triangle.rb +35 -0
- data/lib/squib/{api → dsl}/units.rb +10 -0
- data/lib/squib/dsl/xlsx.rb +40 -0
- data/lib/squib/dsl/yaml.rb +40 -0
- data/lib/squib/errors_warnings/warn_unexpected_params.rb +14 -0
- data/lib/squib/graphics/save_images.rb +3 -3
- data/lib/squib/graphics/save_sprue.rb +14 -2
- data/lib/squib/graphics/text.rb +37 -9
- data/lib/squib/import/csv_importer.rb +45 -0
- data/lib/squib/import/quantity_exploder.rb +18 -0
- data/lib/squib/import/xlsx_importer.rb +28 -0
- data/lib/squib/import/yaml_importer.rb +30 -0
- data/lib/squib/layout_parser.rb +24 -7
- data/lib/squib/sprues/crop_line.rb +6 -6
- data/lib/squib/sprues/crop_line_dash.rb +6 -6
- data/lib/squib/sprues/sprue.rb +16 -14
- data/lib/squib/version.rb +1 -1
- data/samples/autoscale_font/_autoscale_font.rb +77 -8
- data/samples/colors/_switch_color.rb +2 -2
- data/samples/data/_excel.rb +1 -1
- data/samples/ranges/_ranges.rb +1 -1
- data/samples/saves/_save_filenames.rb +4 -0
- data/samples/saves/_save_pdf.rb +1 -1
- data/samples/saves/_saves.rb +2 -1
- data/samples/shapes/_draw_shapes.rb +2 -2
- data/samples/sprues/_builtin_sprues.rb +1 -0
- data/samples/sprues/_fold_sheet.rb +4 -1
- data/samples/text/_text.rb +6 -1
- data/samples/text/_text_options.rb +2 -1
- data/samples/units/_cells.rb +51 -0
- data/samples/units/_shorthands.rb +49 -0
- data/samples/units/_units.rb +7 -0
- data/squib.gemspec +11 -5
- metadata +120 -33
- data/.travis.yml +0 -17
- data/appveyor.yml +0 -25
- data/lib/squib/api/background.rb +0 -15
- data/lib/squib/api/data.rb +0 -137
- data/lib/squib/api/image.rb +0 -49
- data/lib/squib/api/save.rb +0 -83
- data/lib/squib/api/shapes.rb +0 -124
- data/lib/squib/api/text.rb +0 -25
- data/lib/squib/api/text_embed.rb +0 -71
data/lib/squib/version.rb
CHANGED
@@ -1,13 +1,79 @@
|
|
1
1
|
require 'squib'
|
2
2
|
|
3
|
-
#
|
4
|
-
#
|
5
|
-
#
|
3
|
+
# Autoscaling font is handy for a bunch of things:
|
4
|
+
# * Picture-perfect text fitting for one-off
|
5
|
+
# * Rapid prototyping where you don't have to think about sizes
|
6
|
+
#
|
7
|
+
# We've got three options...
|
8
|
+
# Option 1. Use your data <--- good for picture-perfect
|
9
|
+
# Option 2. Use ellipsize: :autoscale <--- good for rapid prototyping
|
10
|
+
# Option 3. Use map ranges in your code <--- good for picture-perfect
|
11
|
+
# or other weird cases
|
12
|
+
|
13
|
+
###########################
|
14
|
+
# Option 1: Use your data #
|
15
|
+
###########################
|
16
|
+
# If you want to tweak the font size per-card, you can always make font_size
|
17
|
+
# a column and map it from there. This is tedious but leads to perfectly
|
18
|
+
# customized results
|
19
|
+
my_data = Squib.csv data: <<~CSV
|
20
|
+
"Title","Font Size"
|
21
|
+
"Short & Big",10
|
22
|
+
"Medium Length & Size", 5
|
23
|
+
"Super duper long string here, therefore a smaller font.", 4
|
24
|
+
CSV
|
25
|
+
|
26
|
+
Squib::Deck.new(width: 300, height: 75, cards: 3) do
|
27
|
+
background color: :white
|
28
|
+
rect stroke_color: :black
|
29
|
+
|
30
|
+
text str: my_data.title, font: 'Arial',
|
31
|
+
font_size: my_data.font_size, # <-- key part
|
32
|
+
x: 10, y:10, align: :center,
|
33
|
+
width: 280, # <-- note how height does NOT need to be set
|
34
|
+
ellipsize: false,
|
35
|
+
hint: :red
|
36
|
+
save_sheet columns: 3, prefix: 'autoscale_w_data_'
|
37
|
+
end
|
38
|
+
|
39
|
+
#######################################
|
40
|
+
# Option 2: Use ellipsize: :autoscale #
|
41
|
+
#######################################
|
42
|
+
# If set the height, you can set "autoscale" and it will incrementally
|
43
|
+
# downgrade the font size until the text does not ellipsize
|
44
|
+
#
|
45
|
+
# Great for rapid prototyping, set-it-and-forget-it
|
46
|
+
#
|
47
|
+
# NOTE: You MUST set the height for this to work. Otherwise, the text will
|
48
|
+
# never ellipsize and Squib doesn't know when to start autoscaling
|
49
|
+
Squib::Deck.new(width: 300, height: 75, cards: 3) do
|
50
|
+
background color: :white
|
51
|
+
rect stroke_color: :black
|
52
|
+
title = ['Short & Big',
|
53
|
+
'Medium Length & Size',
|
54
|
+
'Super duper long string here, therefore a smaller font.']
|
55
|
+
|
56
|
+
# Automatically scale the text down from the specified font_size to the largest size that fits
|
57
|
+
text str: title, font: 'Arial',
|
58
|
+
font_size: 15, # <-- this is the MAX font size. Scale down from here
|
59
|
+
ellipsize: :autoscale, # <-- key part
|
60
|
+
height: 50, # <-- need this to be set to something
|
61
|
+
width: 280, x: 10, y: 10, align: :center, valign: :middle, hint: :red
|
62
|
+
|
63
|
+
save_sheet columns: 3, prefix: 'autoscale_w_ellipsize_'
|
64
|
+
end
|
65
|
+
|
66
|
+
############################################
|
67
|
+
# Option 3: Mapping to ranges in your code #
|
68
|
+
############################################
|
69
|
+
# Here's an in-between option that allows you to programmatically apply font
|
70
|
+
# sizes. This allows you a ton of flexibility.Probably more flexibility than
|
71
|
+
# you need, frankly. But one advantage is that you don't have to set the height
|
6
72
|
def autoscale(str_array)
|
7
73
|
str_array.map do | str |
|
8
74
|
case str.length
|
9
75
|
when 0..15
|
10
|
-
|
76
|
+
9
|
11
77
|
when 16..20
|
12
78
|
6
|
13
79
|
else
|
@@ -16,14 +82,17 @@ def autoscale(str_array)
|
|
16
82
|
end
|
17
83
|
end
|
18
84
|
|
19
|
-
Squib::Deck.new(width: 300, height:
|
85
|
+
Squib::Deck.new(width: 300, height: 75, cards: 3) do
|
20
86
|
background color: :white
|
21
|
-
rect
|
87
|
+
rect stroke_color: :black
|
22
88
|
title = ['Short & Big',
|
23
89
|
'Medium Length & Size',
|
24
90
|
'Super duper long string here, therefore a smaller font.']
|
25
|
-
|
91
|
+
|
92
|
+
# Scale text based on the string length
|
93
|
+
text str: title, font: 'Arial',
|
94
|
+
font_size: autoscale(title), # <-- key part
|
26
95
|
x: 10, y:10, align: :center, width: 280, ellipsize: false, hint: :red
|
27
96
|
|
28
|
-
|
97
|
+
save_sheet columns: 3, prefix: 'autoscale_w_range_'
|
29
98
|
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require_relative '../../lib/squib'
|
2
2
|
|
3
3
|
# Choose between black and white color theme for type snake
|
4
4
|
# * Allow using white snake cards with black text or
|
5
5
|
# black snake cards with white text
|
6
6
|
color = 'white'
|
7
7
|
|
8
|
-
cards = Squib.csv file: '_switch_color_data.csv'
|
8
|
+
cards = Squib.csv file: '_switch_color_data.csv'
|
9
9
|
|
10
10
|
Squib::Deck.new cards: cards['Type'].size do
|
11
11
|
|
data/samples/data/_excel.rb
CHANGED
@@ -37,7 +37,7 @@ end
|
|
37
37
|
# from each value. This is the default behavior in Squib, but the options
|
38
38
|
# are here just to make sure.
|
39
39
|
|
40
|
-
resource_data = Squib.xlsx(file: 'sample.xlsx', sheet: 2, strip: true) do |header, value|
|
40
|
+
resource_data = Squib.xlsx(file: 'sample.xlsx', explode: 'Qty', sheet: 2, strip: true) do |header, value|
|
41
41
|
case header
|
42
42
|
when 'Cost'
|
43
43
|
"$#{value}k" # e.g. "3" becomes "$3k"
|
data/samples/ranges/_ranges.rb
CHANGED
@@ -16,6 +16,10 @@ Squib::Deck.new(width: 50, height: 50, cards: 2) do
|
|
16
16
|
# bar.png
|
17
17
|
save_png prefix: ['foo', 'bar'], count_format: ''
|
18
18
|
|
19
|
+
# foo_00_bar.png
|
20
|
+
# foo_01_bar.png
|
21
|
+
save_png prefix: 'foo_', suffix: '_bar'
|
22
|
+
|
19
23
|
# thief.png
|
20
24
|
# thug.png
|
21
25
|
data = csv data: "filename\nthief\nthug"
|
data/samples/saves/_save_pdf.rb
CHANGED
@@ -3,7 +3,7 @@ require 'squib'
|
|
3
3
|
Squib::Deck.new(cards: 8) do
|
4
4
|
background color: :gray
|
5
5
|
rect x: 37.5, y: 37.5, width: 750, height: 1050,
|
6
|
-
x_radius: 37.5, y_radius: 37.5,
|
6
|
+
x_radius: 37.5, y_radius: 37.5, stroke_width: 2.0, dash: '4 4'
|
7
7
|
|
8
8
|
# Tests for crop marks
|
9
9
|
save_pdf file: 'crops-default.pdf', crop_marks: true
|
data/samples/saves/_saves.rb
CHANGED
@@ -5,7 +5,7 @@ require 'squib'
|
|
5
5
|
Squib::Deck.new(width: 825, height: 1125, cards: 16) do
|
6
6
|
background color: :gray
|
7
7
|
rect x: 38, y: 38, width: 750, height: 1050,
|
8
|
-
x_radius: 38, y_radius: 38,
|
8
|
+
x_radius: 38, y_radius: 38, stroke_width: 2.0, dash: '4 4'
|
9
9
|
|
10
10
|
text str: (1..16).to_a, x: 220, y: 78, font: 'Arial 18'
|
11
11
|
|
@@ -45,6 +45,7 @@ Squib::Deck.new(width: 825, height: 1125, cards: 16) do
|
|
45
45
|
|
46
46
|
# Sheets can arrange left-to-right and right-to-left
|
47
47
|
save_sheet prefix: 'save_sheet_rtl_',
|
48
|
+
suffix: '_with_suffix',
|
48
49
|
range: 0..1, rtl: true,
|
49
50
|
columns: 2, rows: 1,
|
50
51
|
margin: 75, gap: 5, trim: 37
|
@@ -3,8 +3,8 @@ require 'squib'
|
|
3
3
|
Squib::Deck.new do
|
4
4
|
background color: :white
|
5
5
|
|
6
|
-
grid x: 10, y: 10, width: 50, height: 50, stroke_color: '#0066FF', stroke_width: 1.5
|
7
|
-
grid x: 10, y: 10, width: 200, height: 200, stroke_color: '#0066FF', stroke_width: 3
|
6
|
+
grid x: 10, y: 10, width: 50, height: 50, stroke_color: '#0066FF', stroke_width: 1.5
|
7
|
+
grid x: 10, y: 10, width: 200, height: 200, stroke_color: '#0066FF', stroke_width: 3
|
8
8
|
|
9
9
|
rect x: 305, y: 105, width: 200, height: 50, dash: '4 2'
|
10
10
|
|
@@ -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
|
data/samples/text/_text.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'squib'
|
2
2
|
require 'squib/sample_helpers'
|
3
3
|
|
4
|
-
Squib::Deck.new(width: 1000, height:
|
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'
|
@@ -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
|
data/samples/units/_units.rb
CHANGED
@@ -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.
|
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']
|
@@ -33,16 +35,20 @@ Gem::Specification.new do |spec|
|
|
33
35
|
spec.add_runtime_dependency 'classy_hash', '0.2.1'
|
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.
|
37
|
-
spec.add_runtime_dependency 'mercenary', '0.
|
38
|
-
spec.add_runtime_dependency 'nokogiri', '1.10
|
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'
|
39
41
|
spec.add_runtime_dependency 'pango', '~> 3.4'
|
40
|
-
spec.add_runtime_dependency '
|
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
45
|
spec.add_runtime_dependency 'ruby-progressbar', '~> 1.10'
|
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.
|
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:
|
11
|
+
date: 2020-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cairo
|
@@ -72,42 +72,42 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.0.
|
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.
|
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.
|
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.
|
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
|
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.10
|
110
|
+
version: '1.10'
|
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
|
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
|
152
|
+
version: '2.8'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rsvg2
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +178,20 @@ dependencies:
|
|
164
178
|
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
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
|
@@ -314,31 +370,24 @@ extra_rdoc_files:
|
|
314
370
|
- samples/text/_embed_text.rb
|
315
371
|
- samples/text/_text.rb
|
316
372
|
- samples/text/_text_options.rb
|
373
|
+
- samples/units/_cells.rb
|
374
|
+
- samples/units/_shorthands.rb
|
317
375
|
- samples/units/_units.rb
|
318
376
|
files:
|
377
|
+
- ".github/workflows/tests.yml"
|
319
378
|
- ".gitignore"
|
320
|
-
- ".travis.yml"
|
321
379
|
- CHANGELOG.md
|
322
380
|
- CONTRIBUTING.md
|
323
381
|
- Dockerfile
|
324
382
|
- Gemfile
|
383
|
+
- Guardfile
|
325
384
|
- LICENSE.txt
|
326
385
|
- README.md
|
327
386
|
- RELEASE TODO.md
|
328
387
|
- Rakefile
|
329
|
-
- appveyor.yml
|
330
388
|
- bin/squib
|
331
389
|
- 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
390
|
- 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
391
|
- lib/squib/args/arg_loader.rb
|
343
392
|
- lib/squib/args/box.rb
|
344
393
|
- lib/squib/args/card_range.rb
|
@@ -363,6 +412,7 @@ files:
|
|
363
412
|
- lib/squib/args/transform.rb
|
364
413
|
- lib/squib/args/typographer.rb
|
365
414
|
- lib/squib/args/unit_conversion.rb
|
415
|
+
- lib/squib/args/xywh_shorthands.rb
|
366
416
|
- lib/squib/builtin/layouts/economy.yml
|
367
417
|
- lib/squib/builtin/layouts/fantasy.yml
|
368
418
|
- lib/squib/builtin/layouts/hand.yml
|
@@ -413,6 +463,34 @@ files:
|
|
413
463
|
- lib/squib/conf.rb
|
414
464
|
- lib/squib/constants.rb
|
415
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
|
416
494
|
- lib/squib/graphics/background.rb
|
417
495
|
- lib/squib/graphics/cairo_context_wrapper.rb
|
418
496
|
- lib/squib/graphics/embedding_utils.rb
|
@@ -426,7 +504,11 @@ files:
|
|
426
504
|
- lib/squib/graphics/shapes.rb
|
427
505
|
- lib/squib/graphics/showcase.rb
|
428
506
|
- lib/squib/graphics/text.rb
|
507
|
+
- lib/squib/import/csv_importer.rb
|
429
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
|
430
512
|
- lib/squib/layout_parser.rb
|
431
513
|
- lib/squib/progress.rb
|
432
514
|
- lib/squib/sample_helpers.rb
|
@@ -481,13 +563,15 @@ files:
|
|
481
563
|
- samples/text/_text.rb
|
482
564
|
- samples/text/_text_options.rb
|
483
565
|
- samples/text/bug134.rb
|
566
|
+
- samples/units/_cells.rb
|
567
|
+
- samples/units/_shorthands.rb
|
484
568
|
- samples/units/_units.rb
|
485
569
|
- squib.gemspec
|
486
570
|
homepage: https://github.com/andymeneely/squib
|
487
571
|
licenses:
|
488
572
|
- MIT
|
489
573
|
metadata: {}
|
490
|
-
post_install_message:
|
574
|
+
post_install_message: Happy Squibbing!
|
491
575
|
rdoc_options:
|
492
576
|
- "--charset=UTF-8"
|
493
577
|
require_paths:
|
@@ -496,15 +580,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
496
580
|
requirements:
|
497
581
|
- - ">="
|
498
582
|
- !ruby/object:Gem::Version
|
499
|
-
version: 2.
|
583
|
+
version: 2.5.0
|
500
584
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
501
585
|
requirements:
|
502
|
-
- - "
|
586
|
+
- - ">"
|
503
587
|
- !ruby/object:Gem::Version
|
504
|
-
version:
|
505
|
-
requirements:
|
506
|
-
|
507
|
-
|
588
|
+
version: 1.3.1
|
589
|
+
requirements:
|
590
|
+
- On Windows, you need the Ruby+DevKit. See https://rubyinstaller.org/downloads
|
591
|
+
rubygems_version: 3.1.4
|
592
|
+
signing_key:
|
508
593
|
specification_version: 2
|
509
594
|
summary: A Ruby DSL for prototyping card games
|
510
595
|
test_files:
|
@@ -553,4 +638,6 @@ test_files:
|
|
553
638
|
- samples/text/_text.rb
|
554
639
|
- samples/text/_text_options.rb
|
555
640
|
- samples/text/bug134.rb
|
641
|
+
- samples/units/_cells.rb
|
642
|
+
- samples/units/_shorthands.rb
|
556
643
|
- samples/units/_units.rb
|