squib 0.16.0 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/RELEASE TODO.md +4 -3
- data/lib/squib.rb +2 -0
- data/lib/squib/args/drop_shadow.rb +39 -0
- data/lib/squib/args/sheet.rb +3 -8
- data/lib/squib/dsl/save_png.rb +6 -2
- data/lib/squib/graphics/cairo_context_wrapper.rb +8 -6
- data/lib/squib/graphics/save_images.rb +52 -13
- data/lib/squib/system_fonts.rb +17 -0
- data/lib/squib/version.rb +1 -1
- data/samples/saves/_saves.rb +10 -0
- data/samples/shadows/_shadow.rb +72 -0
- data/samples/system_font_debug/_list_fonts.rb +14 -0
- data/samples/units/_cells.rb +1 -1
- data/squib.gemspec +4 -4
- metadata +21 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ace89c0cb3dcfd2f4bd564de101d4fa8a822cbfe6dd544af928b238d56aff542
|
4
|
+
data.tar.gz: 5bd3b988b94d0805f6ab8269623fa7fdb544fad9833031497e3e2d3e3066c93b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c002e188b150a545503416ea38ba6df553a595d6f9b79edbe91f5e503c7c1878f3c0681bdd836a735f19d848b3220128d00f70e5eb2fd82c12429067cbb4a65
|
7
|
+
data.tar.gz: aa9da71e042edeeae3f073e6287ce3d6648be8b92caf503b3e69d9cb119975f77cd8049a9a0a89e4321090ac59953ef4ef46464a24510b8bad471da2af3913e3
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
# Squib CHANGELOG
|
2
2
|
Squib follows [semantic versioning](http://semver.org).
|
3
3
|
|
4
|
+
## v0.17.0 / 2021-07-23
|
5
|
+
Features:
|
6
|
+
* Drop shadows! The `save_png` method now supports a bunch of `shadow_` arguments that will add a drop shadow just before rendering. This is intended for using in rulebooks or marketing. Try it out by adding `shadow_radius: 8` to your save_png (#306, #264)
|
7
|
+
* Added debug methods for checking font access. `Squib.system_fonts` and `Squib.print_system_fonts` (#334)
|
8
|
+
|
9
|
+
Bugs:
|
10
|
+
* The `rows` argument is always respected in `save_sheet` (#332).
|
11
|
+
|
12
|
+
Chores:
|
13
|
+
* Bump cairo to ~1.17
|
14
|
+
* Bump classy_hash to 1.0
|
15
|
+
|
4
16
|
## v0.16.0 / 2020-11-24
|
5
17
|
|
6
18
|
Features:
|
data/RELEASE TODO.md
CHANGED
@@ -9,14 +9,15 @@ Be sure to remember to do the following for releases. (Copy into a GitHub issue)
|
|
9
9
|
- [ ] Bump docs/conf.py versions
|
10
10
|
- [ ] Do a full rake locally
|
11
11
|
- [ ] `rake sanity`, and check visually
|
12
|
-
- [ ]
|
12
|
+
- [ ] GitHub Actions is passing on dev branch
|
13
13
|
- [ ] Merge master branch
|
14
14
|
- [ ] Merge release branch
|
15
15
|
- [ ] Push master and release branches
|
16
16
|
- [ ] Create GitHub release tag
|
17
17
|
- [ ] `gem push pkg/squib-x.y.z.gem`
|
18
|
-
- [ ] `gem push --key github --host https://rubygems.pkg.github.com/andymeneely pkg/squib-x.y.z.gem`
|
19
18
|
- [ ] Github milestone closed
|
20
|
-
- [ ] Activate version on squib.readthedocs.org
|
19
|
+
- [ ] Activate version on squib.readthedocs.org (Versions)
|
20
|
+
- [ ] Set default version on squib.readthedocs.org (Advanced Settings)
|
21
21
|
- [ ] Bump version.rb to the next alpha
|
22
|
+
- [ ] Check Docker build
|
22
23
|
- [ ] Publish on BoardGameGeek thread
|
data/lib/squib.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative 'color_validator'
|
2
|
+
|
3
|
+
module Squib::Args
|
4
|
+
module_function def extract_drop_shadow(opts, deck)
|
5
|
+
DropShadow.new(deck.custom_colors).extract! opts, deck
|
6
|
+
end
|
7
|
+
|
8
|
+
class DropShadow
|
9
|
+
include ArgLoader
|
10
|
+
include ColorValidator
|
11
|
+
|
12
|
+
def initialize(custom_colors)
|
13
|
+
@custom_colors = custom_colors
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.parameters
|
17
|
+
{
|
18
|
+
shadow_color: :black,
|
19
|
+
shadow_offset_x: 3,
|
20
|
+
shadow_offset_y: 3,
|
21
|
+
shadow_radius: nil,
|
22
|
+
shadow_trim: 0,
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.expanding_parameters
|
27
|
+
self.parameters.keys # all of them
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.params_with_units
|
31
|
+
[:shadow_offset_x, :shadow_offset_y, :shadow_radius, :shadow_trim]
|
32
|
+
end
|
33
|
+
|
34
|
+
def validate_shadow_color(arg, _i)
|
35
|
+
colorify(arg, @custom_colors)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/lib/squib/args/sheet.rb
CHANGED
@@ -82,14 +82,9 @@ module Squib::Args
|
|
82
82
|
|
83
83
|
def validate_rows(arg)
|
84
84
|
raise 'columns must be an integer' unless columns.respond_to? :to_i
|
85
|
-
count =
|
86
|
-
|
87
|
-
|
88
|
-
count = range.to_a.length
|
89
|
-
end
|
90
|
-
return 1 if count <= columns
|
91
|
-
return arg if arg.respond_to? :to_i
|
92
|
-
(count.to_f / columns.to_f).ceil
|
85
|
+
count = (range == :all) ? @deck.size : count = range.to_a.length
|
86
|
+
return arg.to_i if arg.respond_to? :to_i
|
87
|
+
(count.to_f / columns.to_f).ceil # e.g. :infinite
|
93
88
|
end
|
94
89
|
|
95
90
|
def full_filename(i=nil)
|
data/lib/squib/dsl/save_png.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require_relative '../errors_warnings/warn_unexpected_params'
|
2
|
-
|
2
|
+
require_relative '../args/card_range'
|
3
|
+
require_relative '../args/save_batch'
|
4
|
+
require_relative '../args/drop_shadow'
|
3
5
|
|
4
6
|
module Squib
|
5
7
|
class Deck
|
@@ -24,6 +26,7 @@ module Squib
|
|
24
26
|
range
|
25
27
|
dir prefix suffix count_format
|
26
28
|
rotate trim trim_radius
|
29
|
+
shadow_offset_x shadow_offset_y shadow_radius shadow_color shadow_trim
|
27
30
|
)
|
28
31
|
end
|
29
32
|
|
@@ -31,9 +34,10 @@ module Squib
|
|
31
34
|
warn_if_unexpected opts
|
32
35
|
range = Args.extract_range opts, deck
|
33
36
|
batch = Args.extract_save_batch opts, deck
|
37
|
+
shadow = Args.extract_drop_shadow opts, deck
|
34
38
|
@bar.start("Saving PNGs to #{batch.summary}", deck.size) do |bar|
|
35
39
|
range.map do |i|
|
36
|
-
deck.cards[i].save_png(batch[i])
|
40
|
+
deck.cards[i].save_png(batch[i], shadow[i])
|
37
41
|
bar.increment
|
38
42
|
end
|
39
43
|
end
|
@@ -20,12 +20,14 @@ module Squib
|
|
20
20
|
|
21
21
|
def_delegators :cairo_cxt, :save, :set_source_color, :paint, :restore,
|
22
22
|
:translate, :rotate, :move_to, :update_pango_layout, :width, :height,
|
23
|
-
:show_pango_layout, :rectangle, :rounded_rectangle, :set_line_width,
|
24
|
-
:
|
25
|
-
:operator=, :show_page, :clip, :transform, :mask,
|
26
|
-
:antialias=, :curve_to, :matrix, :matrix=,
|
27
|
-
:
|
28
|
-
:
|
23
|
+
:show_pango_layout, :rectangle, :rounded_rectangle, :set_line_width,
|
24
|
+
:stroke, :fill, :set_source, :scale, :render_rsvg_handle, :circle,
|
25
|
+
:triangle, :line_to, :operator=, :show_page, :clip, :transform, :mask,
|
26
|
+
:create_pango_layout, :antialias=, :curve_to, :matrix, :matrix=,
|
27
|
+
:identity_matrix, :pango_layout_path, :stroke_preserve, :target,
|
28
|
+
:new_path, :new_sub_path, :reset_clip, :fill_preserve, :close_path,
|
29
|
+
:set_line_join, :set_line_cap, :set_dash, :arc, :arc_negative,
|
30
|
+
:pseudo_blur
|
29
31
|
|
30
32
|
# :nodoc:
|
31
33
|
# @api private
|
@@ -1,12 +1,14 @@
|
|
1
|
+
require_relative 'cairo_context_wrapper'
|
2
|
+
|
1
3
|
module Squib
|
2
4
|
class Card
|
3
5
|
|
4
6
|
# :nodoc:
|
5
7
|
# @api private
|
6
|
-
def save_png(batch)
|
7
|
-
surface = if preprocess_save?(batch)
|
8
|
+
def save_png(batch, shadow)
|
9
|
+
surface = if preprocess_save?(batch, shadow)
|
8
10
|
w, h = compute_dimensions(batch.rotate, batch.trim)
|
9
|
-
preprocessed_save(w, h, batch)
|
11
|
+
preprocessed_save(w, h, batch, shadow)
|
10
12
|
else
|
11
13
|
@cairo_surface
|
12
14
|
end
|
@@ -15,8 +17,8 @@ module Squib
|
|
15
17
|
|
16
18
|
# :nodoc:
|
17
19
|
# @api private
|
18
|
-
def preprocess_save?(batch)
|
19
|
-
batch.rotate != false || batch.trim > 0
|
20
|
+
def preprocess_save?(batch, shadow)
|
21
|
+
batch.rotate != false || batch.trim > 0 || !(shadow.shadow_radius.nil?)
|
20
22
|
end
|
21
23
|
|
22
24
|
def compute_dimensions(rotate, trim)
|
@@ -27,25 +29,62 @@ module Squib
|
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
30
|
-
def preprocessed_save(
|
31
|
-
new_cc = Cairo::Context.new(Cairo::ImageSurface.new(
|
32
|
+
def preprocessed_save(w, h, batch, shadow)
|
33
|
+
new_cc = Cairo::Context.new(Cairo::ImageSurface.new(w, h))
|
32
34
|
trim_radius = batch.trim_radius
|
33
35
|
if batch.rotate != false
|
34
|
-
new_cc.translate
|
35
|
-
new_cc.rotate
|
36
|
-
new_cc.translate
|
37
|
-
new_cc.rounded_rectangle(0, 0,
|
36
|
+
new_cc.translate w * 0.5, h * 0.5
|
37
|
+
new_cc.rotate batch.angle
|
38
|
+
new_cc.translate h * -0.5, w * -0.5
|
39
|
+
new_cc.rounded_rectangle(0, 0, h, w, trim_radius, trim_radius)
|
38
40
|
else
|
39
|
-
new_cc.rounded_rectangle(0, 0,
|
41
|
+
new_cc.rounded_rectangle(0, 0, w, h, trim_radius, trim_radius)
|
40
42
|
end
|
41
43
|
new_cc.clip
|
42
44
|
new_cc.set_source(@cairo_surface, -batch.trim, -batch.trim)
|
43
45
|
new_cc.paint
|
46
|
+
new_cc.reset_clip
|
47
|
+
new_cc = drop_shadow(new_cc, shadow, batch) unless shadow.shadow_radius.nil?
|
44
48
|
return new_cc.target
|
45
49
|
end
|
46
50
|
|
51
|
+
# pseudo-blur behave weirdly with a radius of 0 - wrapping
|
52
|
+
def blur(cc, r, &block)
|
53
|
+
if r == 0
|
54
|
+
yield(block)
|
55
|
+
else
|
56
|
+
cc.pseudo_blur(r, &block)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def drop_shadow(cc, s, batch)
|
61
|
+
off_x = s.shadow_offset_x
|
62
|
+
off_y = s.shadow_offset_y
|
63
|
+
s_trim = s.shadow_trim
|
64
|
+
s_rad = s.shadow_radius
|
65
|
+
new_w = cc.target.width + off_x + 3 * s_rad - (2 * s_trim)
|
66
|
+
new_h = cc.target.height + off_y + 3 * s_rad - (2 * s_trim)
|
67
|
+
new_cc = Squib::Graphics::CairoContextWrapper.new(
|
68
|
+
Cairo::Context.new(Cairo::ImageSurface.new(new_w, new_h)))
|
69
|
+
blur(new_cc, s_rad) do
|
70
|
+
# fill in with shadow color
|
71
|
+
new_cc.set_source_squibcolor s.shadow_color
|
72
|
+
new_cc.rectangle 0, 0, new_cc.target.width, new_cc.target.height
|
73
|
+
new_cc.fill
|
74
|
+
# then, paint but blend with :dest_in to get a shadow-shaped drawing
|
75
|
+
new_cc.set_source cc.target, s_rad + off_x, s_rad + off_y
|
76
|
+
new_cc.operator = :dest_in # see https://www.cairographics.org/operators/
|
77
|
+
new_cc.paint
|
78
|
+
end
|
79
|
+
new_cc.set_source cc.target, s_rad, s_rad
|
80
|
+
new_cc.operator = :over
|
81
|
+
new_cc.paint
|
82
|
+
return new_cc
|
83
|
+
end
|
84
|
+
|
47
85
|
def write_png(surface, i, b)
|
48
|
-
|
86
|
+
filename = "#{b.dir}/#{b.prefix}#{b.count_format % i}#{b.suffix}.png"
|
87
|
+
surface.write_to_png filename
|
49
88
|
end
|
50
89
|
|
51
90
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'pango'
|
2
|
+
module Squib
|
3
|
+
|
4
|
+
# List all system fonts that Cairo/Pango can see
|
5
|
+
# Wow this call was convoluted...
|
6
|
+
# Returns array of strings with the names of fonts
|
7
|
+
module_function def system_fonts
|
8
|
+
cc = Cairo::Context.new(Cairo::ImageSurface.new(0,0)) # empty image
|
9
|
+
cc.create_pango_layout.context.families.map {|f| f.name }
|
10
|
+
end
|
11
|
+
|
12
|
+
# Prints out the system fonts in sorted order
|
13
|
+
module_function def print_system_fonts
|
14
|
+
puts "== DEBUG: Squib knows about these fonts =="
|
15
|
+
puts system_fonts.sort
|
16
|
+
end
|
17
|
+
end
|
data/lib/squib/version.rb
CHANGED
data/samples/saves/_saves.rb
CHANGED
@@ -50,3 +50,13 @@ Squib::Deck.new(width: 825, height: 1125, cards: 16) do
|
|
50
50
|
columns: 2, rows: 1,
|
51
51
|
margin: 75, gap: 5, trim: 37
|
52
52
|
end
|
53
|
+
|
54
|
+
Squib::Deck.new(width: 100, height: 100, cards: 3) do
|
55
|
+
background color: :grey
|
56
|
+
text str: 'Hi', font: 'Arial 18'
|
57
|
+
|
58
|
+
# Test bug 332.
|
59
|
+
# When we only have 3 cards but want a 2x4 grid with lots of empty spaces.
|
60
|
+
# Buggy behavior was to revert to 1 row and not respect the rows arg.
|
61
|
+
save_sheet prefix: 'save_sheet_bug332_', rows: 2, columns: 4
|
62
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'squib'
|
2
|
+
# The save_png method supports drop shadows on the final save
|
3
|
+
# This is useful for when you want to generate images for your rulebook
|
4
|
+
|
5
|
+
Squib::Deck.new(width: 100, height: 150) do
|
6
|
+
background color: '#abc'
|
7
|
+
svg file: '../spanner.svg',
|
8
|
+
x: 'middle - 25', y: 'middle - 25',
|
9
|
+
width: 50, height: 50
|
10
|
+
|
11
|
+
# Shadows off by default, i.e. shadow_radius is nil
|
12
|
+
# So our final dimensions are 100 - 2*15 and 150-2*15
|
13
|
+
save_png prefix: 'no_shadow_', trim: 15, trim_radius: 15
|
14
|
+
|
15
|
+
# Here's a nice-looking drop shadow
|
16
|
+
# Defaults are designed to be generally good, so I recommend just
|
17
|
+
# trying out a shadow_radius of 3 to 10 and see how it looks first
|
18
|
+
save_png prefix: 'with_shadow_', trim: 15, trim_radius: 15,
|
19
|
+
shadow_radius: 8,
|
20
|
+
shadow_offset_x: 3, shadow_offset_y: 3, # about r / 2.5 looks good
|
21
|
+
shadow_trim: 2.5, # about r/ 3 looks good
|
22
|
+
shadow_color: '#101010aa' #tip: start the shadow color kinda transparent
|
23
|
+
|
24
|
+
# Don't want a blur? Use a radius of 0
|
25
|
+
save_png prefix: 'no_blur_', trim: 15, trim_radius: 15,
|
26
|
+
shadow_radius: 0
|
27
|
+
|
28
|
+
# Ok this next stop is crazytown, but it does give you ultimate control
|
29
|
+
# Remember that all Squib colors can also be gradients.
|
30
|
+
# They can be clunky but they do work here.
|
31
|
+
# - x,y's are centered in the card itself
|
32
|
+
# - stops go from fully empty to fully black
|
33
|
+
# - we need to still turn on radius to get the effect
|
34
|
+
# - but, this makes the upper-left corner not have a glowing effect and
|
35
|
+
# have a harder edge, which (to my eye at least) feels more realistic
|
36
|
+
# since the card would obscure the upper-left shadow at that angle
|
37
|
+
# - this also allows you have a larger, softer blur without making it look
|
38
|
+
# like it's glowing
|
39
|
+
#
|
40
|
+
# Oh just because it's easier to write we can use a ruby heredoc
|
41
|
+
save_png prefix: 'gradient_blur_', trim: 15, trim_radius: 15,
|
42
|
+
shadow_radius: 10,
|
43
|
+
shadow_color: <<~EOS
|
44
|
+
(25,25)
|
45
|
+
(175,175)
|
46
|
+
#0000@0.0
|
47
|
+
#000f@1.0
|
48
|
+
EOS
|
49
|
+
|
50
|
+
# This one looks weird I know but it's for regression testing
|
51
|
+
save_png prefix: 'with_shadow_test_',
|
52
|
+
trim: 15, trim_radius: 15, rotate: :clockwise,
|
53
|
+
shadow_offset_x: 5, shadow_offset_y: 25, shadow_radius: 10,
|
54
|
+
shadow_trim: 10,
|
55
|
+
shadow_color: '#123'
|
56
|
+
end
|
57
|
+
|
58
|
+
Squib::Deck.new(width:50, height: 50) do
|
59
|
+
|
60
|
+
# What if we had a transparent card but just some shapes?
|
61
|
+
# Like chits or something
|
62
|
+
|
63
|
+
# background defaults to fully transparent here
|
64
|
+
|
65
|
+
png file: 'doodle.png'
|
66
|
+
|
67
|
+
save_png prefix: 'transparent_bg_shadow_',
|
68
|
+
shadow_radius: 2,
|
69
|
+
shadow_offset_x: 2, shadow_offset_y: 2,
|
70
|
+
shadow_color: :black
|
71
|
+
|
72
|
+
end
|
@@ -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
|
data/samples/units/_cells.rb
CHANGED
@@ -19,7 +19,7 @@ Squib::Deck.new(width: '1.5in', height: '1.5in') do
|
|
19
19
|
# Technically, the "cell" is actually a "unit", so you can even combine
|
20
20
|
# with xywh shorhands!!
|
21
21
|
rect fill_color: :red,
|
22
|
-
x: 'middle + 0.5c', y: '
|
22
|
+
x: 'middle + 0.5c', y: 'deck - 1.5c',
|
23
23
|
width: '1c', height: '1c'
|
24
24
|
|
25
25
|
# And, unlike xywh shorthands, this applies basically everywhere we support
|
data/squib.gemspec
CHANGED
@@ -31,18 +31,18 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.test_files = spec.files.grep(/^(spec|samples|docs|benchmarks)\//)
|
32
32
|
spec.require_paths = ['lib']
|
33
33
|
|
34
|
-
spec.add_runtime_dependency 'cairo', '~> 1.
|
35
|
-
spec.add_runtime_dependency 'classy_hash', '0.
|
34
|
+
spec.add_runtime_dependency 'cairo', '~> 1.17'
|
35
|
+
spec.add_runtime_dependency 'classy_hash', '1.0.0'
|
36
36
|
spec.add_runtime_dependency 'gio2', '~> 3.4'
|
37
37
|
spec.add_runtime_dependency 'gobject-introspection', '~> 3.4'
|
38
38
|
spec.add_runtime_dependency 'highline', '2.0.3'
|
39
39
|
spec.add_runtime_dependency 'mercenary', '0.4.0'
|
40
|
-
spec.add_runtime_dependency 'nokogiri', '~> 1.
|
40
|
+
spec.add_runtime_dependency 'nokogiri', '~> 1.11'
|
41
41
|
spec.add_runtime_dependency 'pango', '~> 3.4'
|
42
42
|
spec.add_runtime_dependency 'rainbow', '~> 3.0'
|
43
43
|
spec.add_runtime_dependency 'roo', '~> 2.8'
|
44
44
|
spec.add_runtime_dependency 'rsvg2', '~> 3.4'
|
45
|
-
spec.add_runtime_dependency 'ruby-progressbar', '~> 1.
|
45
|
+
spec.add_runtime_dependency 'ruby-progressbar', '~> 1.11'
|
46
46
|
|
47
47
|
spec.add_development_dependency 'activesupport'
|
48
48
|
spec.add_development_dependency 'bundler'
|
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.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Meneely
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
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.
|
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.
|
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.
|
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.
|
40
|
+
version: 1.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: gio2
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
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.
|
110
|
+
version: '1.11'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: pango
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '1.
|
173
|
+
version: '1.11'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '1.
|
180
|
+
version: '1.11'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: activesupport
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -354,10 +354,11 @@ extra_rdoc_files:
|
|
354
354
|
- samples/ranges/_ranges.rb
|
355
355
|
- samples/saves/_hand.rb
|
356
356
|
- samples/saves/_portrait_landscape.rb
|
357
|
-
- samples/saves/_saves.rb
|
358
357
|
- samples/saves/_save_filenames.rb
|
359
358
|
- samples/saves/_save_pdf.rb
|
359
|
+
- samples/saves/_saves.rb
|
360
360
|
- samples/saves/_showcase.rb
|
361
|
+
- samples/shadows/_shadow.rb
|
361
362
|
- samples/shapes/_draw_shapes.rb
|
362
363
|
- samples/shapes/_proofs.rb
|
363
364
|
- samples/sprues/_advanced_sprues.rb
|
@@ -366,10 +367,11 @@ extra_rdoc_files:
|
|
366
367
|
- samples/sprues/_hex_tiles.rb
|
367
368
|
- samples/sprues/_mints.rb
|
368
369
|
- samples/sprues/_sprue_example.rb
|
369
|
-
- samples/
|
370
|
+
- samples/system_font_debug/_list_fonts.rb
|
370
371
|
- samples/text/_embed_text.rb
|
371
372
|
- samples/text/_text.rb
|
372
373
|
- samples/text/_text_options.rb
|
374
|
+
- samples/text/bug134.rb
|
373
375
|
- samples/units/_cells.rb
|
374
376
|
- samples/units/_shorthands.rb
|
375
377
|
- samples/units/_units.rb
|
@@ -396,6 +398,7 @@ files:
|
|
396
398
|
- lib/squib/args/csv_opts.rb
|
397
399
|
- lib/squib/args/dir_validator.rb
|
398
400
|
- lib/squib/args/draw.rb
|
401
|
+
- lib/squib/args/drop_shadow.rb
|
399
402
|
- lib/squib/args/embed_adjust.rb
|
400
403
|
- lib/squib/args/embed_key.rb
|
401
404
|
- lib/squib/args/hand_special.rb
|
@@ -517,6 +520,7 @@ files:
|
|
517
520
|
- lib/squib/sprues/invalid_sprue_definition.rb
|
518
521
|
- lib/squib/sprues/sprue.rb
|
519
522
|
- lib/squib/sprues/sprue_schema.rb
|
523
|
+
- lib/squib/system_fonts.rb
|
520
524
|
- lib/squib/version.rb
|
521
525
|
- samples/autoscale_font/_autoscale_font.rb
|
522
526
|
- samples/backend/_backend.rb
|
@@ -551,6 +555,7 @@ files:
|
|
551
555
|
- samples/saves/_save_pdf.rb
|
552
556
|
- samples/saves/_saves.rb
|
553
557
|
- samples/saves/_showcase.rb
|
558
|
+
- samples/shadows/_shadow.rb
|
554
559
|
- samples/shapes/_draw_shapes.rb
|
555
560
|
- samples/shapes/_proofs.rb
|
556
561
|
- samples/sprues/_advanced_sprues.rb
|
@@ -559,6 +564,7 @@ files:
|
|
559
564
|
- samples/sprues/_hex_tiles.rb
|
560
565
|
- samples/sprues/_mints.rb
|
561
566
|
- samples/sprues/_sprue_example.rb
|
567
|
+
- samples/system_font_debug/_list_fonts.rb
|
562
568
|
- samples/text/_embed_text.rb
|
563
569
|
- samples/text/_text.rb
|
564
570
|
- samples/text/_text_options.rb
|
@@ -588,7 +594,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
588
594
|
version: '0'
|
589
595
|
requirements:
|
590
596
|
- On Windows, you need the Ruby+DevKit. See https://rubyinstaller.org/downloads
|
591
|
-
rubygems_version: 3.
|
597
|
+
rubygems_version: 3.2.15
|
592
598
|
signing_key:
|
593
599
|
specification_version: 2
|
594
600
|
summary: A Ruby DSL for prototyping card games
|
@@ -626,6 +632,7 @@ test_files:
|
|
626
632
|
- samples/saves/_save_pdf.rb
|
627
633
|
- samples/saves/_saves.rb
|
628
634
|
- samples/saves/_showcase.rb
|
635
|
+
- samples/shadows/_shadow.rb
|
629
636
|
- samples/shapes/_draw_shapes.rb
|
630
637
|
- samples/shapes/_proofs.rb
|
631
638
|
- samples/sprues/_advanced_sprues.rb
|
@@ -634,6 +641,7 @@ test_files:
|
|
634
641
|
- samples/sprues/_hex_tiles.rb
|
635
642
|
- samples/sprues/_mints.rb
|
636
643
|
- samples/sprues/_sprue_example.rb
|
644
|
+
- samples/system_font_debug/_list_fonts.rb
|
637
645
|
- samples/text/_embed_text.rb
|
638
646
|
- samples/text/_text.rb
|
639
647
|
- samples/text/_text_options.rb
|