squib 0.15.3 → 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.
- 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
@@ -0,0 +1,43 @@
|
|
1
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
2
|
+
require_relative '../args/card_range'
|
3
|
+
require_relative '../args/showcase_special'
|
4
|
+
require_relative '../args/sheet'
|
5
|
+
|
6
|
+
module Squib
|
7
|
+
class Deck
|
8
|
+
def showcase(opts = {})
|
9
|
+
DSL::Showcase.new(self, __callee__).run(opts)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module DSL
|
14
|
+
class Showcase
|
15
|
+
include WarnUnexpectedParams
|
16
|
+
attr_reader :dsl_method, :deck
|
17
|
+
|
18
|
+
def initialize(deck, dsl_method)
|
19
|
+
@deck = deck
|
20
|
+
@dsl_method = dsl_method
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.accepted_params
|
24
|
+
%i(
|
25
|
+
file dir
|
26
|
+
trim trim_radius
|
27
|
+
scale offset fill_color
|
28
|
+
reflect_offset reflect_strength reflect_percent
|
29
|
+
face margin
|
30
|
+
range
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
def run(opts)
|
35
|
+
warn_if_unexpected opts
|
36
|
+
range = Args.extract_range opts, deck
|
37
|
+
showcase = Args.extract_showcase_special opts, deck
|
38
|
+
sheet = Args.extract_sheet opts, deck, { file: 'showcase.png' }
|
39
|
+
deck.render_showcase(range, sheet, showcase)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
2
|
+
|
3
|
+
module Squib
|
4
|
+
class Deck
|
5
|
+
def star(opts = {})
|
6
|
+
DSL::Star.new(self, __callee__).run(opts)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module DSL
|
11
|
+
class Star
|
12
|
+
include WarnUnexpectedParams
|
13
|
+
attr_reader :dsl_method, :deck
|
14
|
+
|
15
|
+
def initialize(deck, dsl_method)
|
16
|
+
@deck = deck
|
17
|
+
@dsl_method = dsl_method
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.accepted_params
|
21
|
+
%i(n x y
|
22
|
+
inner_radius outer_radius angle
|
23
|
+
fill_color stroke_color stroke_width stroke_strategy join dash cap
|
24
|
+
range layout)
|
25
|
+
end
|
26
|
+
|
27
|
+
def run(opts)
|
28
|
+
warn_if_unexpected opts
|
29
|
+
range = Args.extract_range opts, deck
|
30
|
+
draw = Args.extract_draw opts, deck
|
31
|
+
coords = Args.extract_coords opts, deck
|
32
|
+
trans = Args.extract_transform opts, deck
|
33
|
+
range.each { |i| deck.cards[i].star(coords[i], trans[i], draw[i]) }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
2
|
+
require_relative '../args/card_range'
|
3
|
+
require_relative '../args/paint'
|
4
|
+
require_relative '../args/scale_box'
|
5
|
+
require_relative '../args/transform'
|
6
|
+
require_relative '../args/input_file'
|
7
|
+
require_relative '../args/svg_special'
|
8
|
+
|
9
|
+
module Squib
|
10
|
+
class Deck
|
11
|
+
def svg(opts = {})
|
12
|
+
DSL::SVG.new(self, __callee__).run(opts)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module DSL
|
17
|
+
class SVG
|
18
|
+
include WarnUnexpectedParams
|
19
|
+
attr_reader :dsl_method, :deck
|
20
|
+
|
21
|
+
def initialize(deck, dsl_method)
|
22
|
+
@deck = deck
|
23
|
+
@dsl_method = dsl_method
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.accepted_params
|
27
|
+
%i(
|
28
|
+
file
|
29
|
+
x y width height
|
30
|
+
blend mask
|
31
|
+
crop_x crop_y crop_width crop_height
|
32
|
+
crop_corner_radius crop_corner_x_radius crop_corner_y_radius
|
33
|
+
flip_horizontal flip_vertical angle
|
34
|
+
id force_id data
|
35
|
+
range layout
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
def run(opts)
|
40
|
+
warn_if_unexpected opts
|
41
|
+
Dir.chdir(deck.img_dir) do
|
42
|
+
range = Args.extract_range opts, deck
|
43
|
+
paint = Args.extract_paint opts, deck
|
44
|
+
box = Args.extract_scale_box opts, deck
|
45
|
+
trans = Args.extract_transform opts, deck
|
46
|
+
ifile = Args.extract_input_file opts, deck
|
47
|
+
svg_args = Args.extract_svg_special opts, deck
|
48
|
+
deck.progress_bar.start('Loading PNG(s)', range.size) do |bar|
|
49
|
+
range.each do |i|
|
50
|
+
if svg_args.render?(i)
|
51
|
+
deck.cards[i].svg(ifile[i].file, svg_args[i], box[i], paint[i],
|
52
|
+
trans[i])
|
53
|
+
end
|
54
|
+
bar.increment
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require_relative '../args/box'
|
2
|
+
require_relative '../args/card_range'
|
3
|
+
require_relative '../args/draw'
|
4
|
+
require_relative '../args/paragraph'
|
5
|
+
require_relative '../args/transform'
|
6
|
+
require_relative '../dsl/text_embed'
|
7
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
8
|
+
|
9
|
+
module Squib
|
10
|
+
class Deck
|
11
|
+
def text(opts = {})
|
12
|
+
embed = TextEmbed.new self, __callee__
|
13
|
+
yield(embed) if block_given? # store the opts for later use
|
14
|
+
DSL::Text.new(self, __callee__, embed).run(opts)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
module DSL
|
19
|
+
class Text
|
20
|
+
include WarnUnexpectedParams
|
21
|
+
attr_reader :dsl_method, :deck, :embed
|
22
|
+
|
23
|
+
def initialize(deck, dsl_method, embed)
|
24
|
+
@deck = deck
|
25
|
+
@dsl_method = dsl_method
|
26
|
+
@embed = embed
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.accepted_params
|
30
|
+
%i(
|
31
|
+
str font font_size x y markup width height
|
32
|
+
wrap spacing align justify valign ellipsize angle dash cap join
|
33
|
+
hint color fill_color
|
34
|
+
stroke_color stroke_width stroke_width stroke_color stroke_strategy
|
35
|
+
range layout
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
def run(opts)
|
40
|
+
warn_if_unexpected opts
|
41
|
+
range = Args.extract_range opts, deck
|
42
|
+
para = Args.extract_para opts, deck
|
43
|
+
box = Args.extract_box opts, deck, { width: :auto, height: :auto }
|
44
|
+
trans = Args.extract_transform opts, deck
|
45
|
+
draw = Args.extract_draw opts, deck, { stroke_width: 0.0 }
|
46
|
+
extents = Array.new(deck.size)
|
47
|
+
range.each do |i|
|
48
|
+
extents[i] = deck.cards[i].text(embed, para[i], box[i], trans[i], draw[i], deck.dpi)
|
49
|
+
end
|
50
|
+
return extents
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require_relative '../args/box'
|
2
|
+
require_relative '../args/card_range'
|
3
|
+
require_relative '../args/embed_adjust'
|
4
|
+
require_relative '../args/embed_key'
|
5
|
+
require_relative '../args/input_file'
|
6
|
+
require_relative '../args/paint'
|
7
|
+
require_relative '../args/transform'
|
8
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
9
|
+
|
10
|
+
module Squib
|
11
|
+
class TextEmbed
|
12
|
+
include WarnUnexpectedParams
|
13
|
+
attr_reader :rules, :deck, :dsl_method
|
14
|
+
|
15
|
+
def initialize(deck, dsl_method)
|
16
|
+
@deck = deck
|
17
|
+
@rules = {} # store an array of options for later usage
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.accepted_params
|
21
|
+
%i(
|
22
|
+
key file id force_id layout width height dx dy
|
23
|
+
id force_id data
|
24
|
+
flip_horizontal flip_vertical
|
25
|
+
alpha angle blend mask
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def svg(opts = {})
|
30
|
+
warn_if_unexpected opts
|
31
|
+
key = Args::EmbedKey.new.validate_key(opts[:key])
|
32
|
+
range = Args.extract_range opts, deck
|
33
|
+
paint = Args.extract_paint opts, deck
|
34
|
+
box = Args.extract_box opts, deck, { width: :native, height: :native }
|
35
|
+
adjust = Args::EmbedAdjust.new.load!(opts, expand_by: deck.size, layout: deck.layout, dpi: deck.dpi)
|
36
|
+
trans = Args.extract_transform opts, deck
|
37
|
+
ifile = Args.extract_input_file opts, deck
|
38
|
+
svg_args = Args.extract_svg_special opts, deck
|
39
|
+
rule = { type: :svg, file: ifile, box: box, paint: paint, trans: trans,
|
40
|
+
adjust: adjust, svg_args: svg_args }
|
41
|
+
rule[:draw] = Proc.new do |card, x, y, scale|
|
42
|
+
i = card.index
|
43
|
+
b = box[i]
|
44
|
+
b.x, b.y = x, y
|
45
|
+
b.width = b.width * scale if b.width.is_a? Numeric
|
46
|
+
b.height = b.height * scale if b.height.is_a? Numeric
|
47
|
+
Dir.chdir(deck.img_dir) do
|
48
|
+
card.svg(ifile[i].file, svg_args[i], b, paint[i], trans[i])
|
49
|
+
end
|
50
|
+
end
|
51
|
+
@rules[key] = rule
|
52
|
+
end
|
53
|
+
|
54
|
+
def png(opts = {})
|
55
|
+
warn_if_unexpected opts
|
56
|
+
key = Args::EmbedKey.new.validate_key(opts[:key])
|
57
|
+
range = Args.extract_range opts, deck
|
58
|
+
paint = Args.extract_paint opts, deck
|
59
|
+
box = Args.extract_box opts, deck, { width: :native, height: :native }
|
60
|
+
adjust = Args::EmbedAdjust.new.load!(opts, expand_by: deck.size, layout: deck.layout, dpi: deck.dpi)
|
61
|
+
trans = Args.extract_transform opts, deck
|
62
|
+
ifile = Args.extract_input_file opts, deck
|
63
|
+
rule = { type: :png, file: ifile, box: box, paint: paint, trans: trans, adjust: adjust }
|
64
|
+
rule[:draw] = Proc.new do |card, x, y, scale|
|
65
|
+
i = card.index
|
66
|
+
b = box[i]
|
67
|
+
b.x, b.y = x, y
|
68
|
+
b.width = b.width * scale if b.width.is_a? Numeric
|
69
|
+
b.height = b.height * scale if b.height.is_a? Numeric
|
70
|
+
Dir.chdir(deck.img_dir) do
|
71
|
+
card.png(ifile[i].file, b, paint[i], trans[i])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
@rules[key] = rule
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
2
|
+
|
3
|
+
module Squib
|
4
|
+
class Deck
|
5
|
+
def triangle(opts = {})
|
6
|
+
DSL::Triangle.new(self, __callee__).run(opts)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module DSL
|
11
|
+
class Triangle
|
12
|
+
include WarnUnexpectedParams
|
13
|
+
attr_reader :dsl_method, :deck
|
14
|
+
|
15
|
+
def initialize(deck, dsl_method)
|
16
|
+
@deck = deck
|
17
|
+
@dsl_method = dsl_method
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.accepted_params
|
21
|
+
%i(x1 y1 x2 y2 x3 y3
|
22
|
+
fill_color stroke_color stroke_width stroke_strategy join dash cap
|
23
|
+
range layout)
|
24
|
+
end
|
25
|
+
|
26
|
+
def run(opts)
|
27
|
+
warn_if_unexpected opts
|
28
|
+
range = Args.extract_range opts, deck
|
29
|
+
draw = Args.extract_draw opts, deck
|
30
|
+
coords = Args.extract_coords opts, deck
|
31
|
+
range.each { |i| deck.cards[i].triangle(coords[i], draw[i]) }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -23,5 +23,15 @@ module Squib
|
|
23
23
|
@dpi * Squib::INCHES_IN_CM * n.to_f / 10.0
|
24
24
|
end
|
25
25
|
|
26
|
+
# DSL method. See http://squib.readthedocs.io
|
27
|
+
def deg(n)
|
28
|
+
n.to_f * (Math::PI / 180.0)
|
29
|
+
end
|
30
|
+
|
31
|
+
# DSL method. See http://squib.readthedocs.io
|
32
|
+
def cells(n)
|
33
|
+
n.to_f * @cell_px
|
34
|
+
end
|
35
|
+
|
26
36
|
end
|
27
37
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative '../args/import'
|
2
|
+
require_relative '../import/xlsx_importer'
|
3
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
4
|
+
|
5
|
+
module Squib
|
6
|
+
# DSL method. See http://squib.readthedocs.io
|
7
|
+
def xlsx(opts = {}, &block)
|
8
|
+
DSL::Xlsx.new(__callee__).run(opts, &block)
|
9
|
+
end
|
10
|
+
module_function :xlsx
|
11
|
+
|
12
|
+
class Deck
|
13
|
+
# DSL method. See http://squib.readthedocs.io
|
14
|
+
def xlsx(opts = {}, &block)
|
15
|
+
DSL::Xlsx.new(__callee__).run(opts, &block)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module DSL
|
20
|
+
class Xlsx
|
21
|
+
include WarnUnexpectedParams
|
22
|
+
attr_reader :dsl_method, :block
|
23
|
+
|
24
|
+
def initialize(dsl_method)
|
25
|
+
@dsl_method = dsl_method
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.accepted_params
|
29
|
+
%i( file sheet strip explode )
|
30
|
+
end
|
31
|
+
|
32
|
+
def run(opts,&block)
|
33
|
+
warn_if_unexpected opts
|
34
|
+
import_args = Args.extract_import opts
|
35
|
+
importer = Squib::Import::XlsxImporter.new
|
36
|
+
importer.import_to_dataframe(import_args, &block)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative '../args/import'
|
2
|
+
require_relative '../import/yaml_importer'
|
3
|
+
require_relative '../errors_warnings/warn_unexpected_params'
|
4
|
+
|
5
|
+
module Squib
|
6
|
+
# DSL method. See http://squib.readthedocs.io
|
7
|
+
def yaml(opts = {}, &block)
|
8
|
+
DSL::Yaml.new(__callee__).run(opts, &block)
|
9
|
+
end
|
10
|
+
module_function :yaml
|
11
|
+
|
12
|
+
class Deck
|
13
|
+
# DSL method. See http://squib.readthedocs.io
|
14
|
+
def yaml(opts = {}, &block)
|
15
|
+
DSL::Yaml.new(__callee__).run(opts, &block)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module DSL
|
20
|
+
class Yaml
|
21
|
+
include WarnUnexpectedParams
|
22
|
+
attr_reader :dsl_method, :block
|
23
|
+
|
24
|
+
def initialize(dsl_method)
|
25
|
+
@dsl_method = dsl_method
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.accepted_params
|
29
|
+
%i( file data explode )
|
30
|
+
end
|
31
|
+
|
32
|
+
def run(opts,&block)
|
33
|
+
warn_if_unexpected opts
|
34
|
+
import_args = Args.extract_import opts
|
35
|
+
importer = Squib::Import::YamlImporter.new
|
36
|
+
importer.import_to_dataframe(import_args, &block)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rainbow/refinement'
|
2
|
+
|
3
|
+
module Squib::WarnUnexpectedParams
|
4
|
+
using Rainbow # we can colorize strings now!
|
5
|
+
|
6
|
+
def warn_if_unexpected(opts, uplevel: 5)
|
7
|
+
accepted_params = self.class.accepted_params
|
8
|
+
unexpected = opts.keys - accepted_params
|
9
|
+
unexpected.each do |key|
|
10
|
+
warn "Unexpected parameter '#{key.to_s.yellow}:' to #{dsl_method.to_s.cyan}(). Accepted parameters: #{accepted_params}",
|
11
|
+
uplevel: uplevel
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -10,7 +10,7 @@ module Squib
|
|
10
10
|
else
|
11
11
|
@cairo_surface
|
12
12
|
end
|
13
|
-
write_png(surface, index, batch
|
13
|
+
write_png(surface, index, batch)
|
14
14
|
end
|
15
15
|
|
16
16
|
# :nodoc:
|
@@ -44,8 +44,8 @@ module Squib
|
|
44
44
|
return new_cc.target
|
45
45
|
end
|
46
46
|
|
47
|
-
def write_png(surface, i,
|
48
|
-
surface.write_to_png("#{dir}/#{prefix}#{count_format % i}.png")
|
47
|
+
def write_png(surface, i, b)
|
48
|
+
surface.write_to_png("#{b.dir}/#{b.prefix}#{b.count_format % i}#{b.suffix}.png")
|
49
49
|
end
|
50
50
|
|
51
51
|
end
|