squib 0.14.2 → 0.14.3.pre1
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/.gitignore +41 -41
- data/.travis.yml +19 -19
- data/CHANGELOG.md +366 -357
- data/CONTRIBUTING.md +40 -40
- data/Gemfile +2 -2
- data/LICENSE.txt +22 -22
- data/README.md +121 -121
- data/RELEASE TODO.md +21 -21
- data/Rakefile +48 -48
- data/appveyor.yml +24 -24
- data/bin/squib +4 -4
- data/lib/squib.rb +32 -32
- data/lib/squib/api/background.rb +15 -15
- data/lib/squib/api/data.rb +137 -137
- data/lib/squib/api/groups.rb +54 -54
- data/lib/squib/api/image.rb +49 -49
- data/lib/squib/api/save.rb +83 -83
- data/lib/squib/api/settings.rb +21 -21
- data/lib/squib/api/shapes.rb +124 -124
- data/lib/squib/api/text.rb +25 -25
- data/lib/squib/api/text_embed.rb +71 -71
- data/lib/squib/api/units.rb +27 -27
- data/lib/squib/args/arg_loader.rb +126 -126
- data/lib/squib/args/box.rb +55 -55
- data/lib/squib/args/card_range.rb +32 -32
- data/lib/squib/args/color_validator.rb +12 -12
- data/lib/squib/args/coords.rb +35 -35
- data/lib/squib/args/csv_opts.rb +25 -25
- data/lib/squib/args/dir_validator.rb +16 -16
- data/lib/squib/args/draw.rb +92 -92
- data/lib/squib/args/embed_adjust.rb +25 -25
- data/lib/squib/args/embed_key.rb +17 -17
- data/lib/squib/args/hand_special.rb +37 -37
- data/lib/squib/args/import.rb +40 -40
- data/lib/squib/args/input_file.rb +37 -37
- data/lib/squib/args/paint.rb +44 -44
- data/lib/squib/args/paragraph.rb +116 -116
- data/lib/squib/args/save_batch.rb +63 -63
- data/lib/squib/args/scale_box.rb +53 -53
- data/lib/squib/args/sheet.rb +172 -172
- data/lib/squib/args/showcase_special.rb +38 -38
- data/lib/squib/args/sprue_file.rb +44 -44
- data/lib/squib/args/svg_special.rb +37 -37
- data/lib/squib/args/transform.rb +61 -61
- data/lib/squib/args/typographer.rb +119 -119
- data/lib/squib/args/unit_conversion.rb +29 -29
- data/lib/squib/builtin/layouts/economy.yml +85 -85
- data/lib/squib/builtin/layouts/fantasy.yml +101 -101
- data/lib/squib/builtin/layouts/hand.yml +62 -62
- data/lib/squib/builtin/layouts/party.yml +94 -94
- data/lib/squib/builtin/layouts/playing-card.yml +35 -35
- data/lib/squib/builtin/layouts/tuck_box.yml +46 -46
- data/lib/squib/builtin/projects/advanced/.gitignore +4 -4
- data/lib/squib/builtin/projects/advanced/ABOUT.md +19 -19
- data/lib/squib/builtin/projects/advanced/Gemfile +11 -11
- data/lib/squib/builtin/projects/advanced/Guardfile +21 -21
- data/lib/squib/builtin/projects/advanced/IDEAS.md +22 -22
- data/lib/squib/builtin/projects/advanced/PLAYTESTING.md +26 -26
- data/lib/squib/builtin/projects/advanced/Rakefile +27 -27
- data/lib/squib/builtin/projects/advanced/config.yml +53 -49
- data/lib/squib/builtin/projects/advanced/docs/PNP NOTES.md +3 -3
- data/lib/squib/builtin/projects/advanced/docs/RULES.md +21 -21
- data/lib/squib/builtin/projects/advanced/img/example.svg +60 -60
- data/lib/squib/builtin/projects/advanced/layouts/deck.yml +27 -27
- data/lib/squib/builtin/projects/advanced/src/deck.rb +34 -34
- data/lib/squib/builtin/projects/advanced/src/version.rb +3 -3
- data/lib/squib/builtin/projects/basic/.gitignore +4 -4
- data/lib/squib/builtin/projects/basic/ABOUT.md +19 -19
- data/lib/squib/builtin/projects/basic/Gemfile +3 -3
- data/lib/squib/builtin/projects/basic/IDEAS.md +22 -22
- data/lib/squib/builtin/projects/basic/PLAYTESTING.md +26 -26
- data/lib/squib/builtin/projects/basic/PNP NOTES.md +3 -3
- data/lib/squib/builtin/projects/basic/RULES.md +21 -21
- data/lib/squib/builtin/projects/basic/Rakefile +7 -7
- data/lib/squib/builtin/projects/basic/config.yml +53 -49
- data/lib/squib/builtin/projects/basic/deck.rb +6 -6
- data/lib/squib/builtin/sprues/a4_euro_card.yml +42 -42
- data/lib/squib/builtin/sprues/a4_poker_card_8up.yml +40 -40
- data/lib/squib/builtin/sprues/a4_poker_card_9up.yml +42 -42
- data/lib/squib/builtin/sprues/a4_usa_card.yml +42 -42
- data/lib/squib/builtin/sprues/drivethrucards_1up.yml +10 -10
- data/lib/squib/builtin/sprues/letter_poker_card_9up.yml +25 -25
- data/lib/squib/builtin/sprues/letter_poker_foldable_8up.yml +52 -52
- data/lib/squib/builtin/sprues/printplaygames_18up.yml +68 -68
- data/lib/squib/card.rb +75 -75
- data/lib/squib/commands/cli.rb +39 -39
- data/lib/squib/commands/data/template_option.rb +109 -109
- data/lib/squib/commands/make_sprue.rb +275 -275
- data/lib/squib/commands/new.rb +77 -77
- data/lib/squib/conf.rb +144 -139
- data/lib/squib/constants.rb +17 -17
- data/lib/squib/deck.rb +116 -116
- data/lib/squib/graphics/background.rb +14 -14
- data/lib/squib/graphics/cairo_context_wrapper.rb +113 -113
- data/lib/squib/graphics/embedding_utils.rb +28 -28
- data/lib/squib/graphics/gradient_regex.rb +47 -47
- data/lib/squib/graphics/hand.rb +42 -42
- data/lib/squib/graphics/image.rb +129 -108
- data/lib/squib/graphics/save_doc.rb +61 -61
- data/lib/squib/graphics/save_images.rb +52 -52
- data/lib/squib/graphics/save_pdf.rb +90 -90
- data/lib/squib/graphics/save_sprue.rb +204 -204
- data/lib/squib/graphics/shapes.rb +143 -143
- data/lib/squib/graphics/showcase.rb +85 -85
- data/lib/squib/graphics/text.rb +174 -174
- data/lib/squib/import/data_frame.rb +108 -108
- data/lib/squib/layout_parser.rb +138 -138
- data/lib/squib/progress.rb +38 -38
- data/lib/squib/sample_helpers.rb +34 -34
- data/lib/squib/sprues/crop_line.rb +28 -28
- data/lib/squib/sprues/crop_line_dash.rb +35 -35
- data/lib/squib/sprues/invalid_sprue_definition.rb +9 -9
- data/lib/squib/sprues/sprue.rb +203 -203
- data/lib/squib/sprues/sprue_schema.rb +48 -48
- data/lib/squib/version.rb +10 -10
- data/samples/autoscale_font/_autoscale_font.rb +29 -29
- data/samples/backend/_backend.rb +26 -26
- data/samples/basic.rb +19 -19
- data/samples/bug256/_bug256.rb +13 -0
- data/samples/build_groups/build_groups.rb +36 -36
- data/samples/colors/_colors.rb +38 -38
- data/samples/colors/_gradients.rb +34 -34
- data/samples/config/config_text_markup.rb +20 -20
- data/samples/config/custom_config.rb +18 -18
- data/samples/data/_csv.rb +33 -33
- data/samples/data/_excel.rb +55 -55
- data/samples/data/_yaml.rb +12 -12
- data/samples/hello_world.rb +6 -6
- data/samples/images/_cairo_access.rb +39 -39
- data/samples/images/_images.rb +104 -104
- data/samples/images/_more_load_images.rb +102 -102
- data/samples/intro/01_hello.rb +8 -8
- data/samples/intro/02_options.rb +14 -14
- data/samples/intro/03_layout.rb +11 -11
- data/samples/intro/04_arrays.rb +15 -15
- data/samples/intro/05_excel.rb +14 -14
- data/samples/layouts/builtin_layouts.rb +97 -97
- data/samples/layouts/layouts.rb +71 -71
- data/samples/project/src/characters.rb +8 -8
- data/samples/project/src/skills.rb +7 -7
- data/samples/proofs/_tgc_proofs.rb +16 -16
- data/samples/ranges/_ranges.rb +64 -64
- data/samples/saves/_hand.rb +23 -23
- data/samples/saves/_portrait_landscape.rb +23 -23
- data/samples/saves/_save_pdf.rb +29 -29
- data/samples/saves/_saves.rb +51 -51
- data/samples/saves/_showcase.rb +25 -25
- data/samples/shapes/_draw_shapes.rb +60 -60
- data/samples/shapes/_proofs.rb +22 -22
- data/samples/sprues/_advanced_sprues.rb +24 -24
- data/samples/sprues/_builtin_sprues.rb +21 -21
- data/samples/sprues/_fold_sheet.rb +27 -27
- data/samples/sprues/_hex_tiles.rb +15 -15
- data/samples/sprues/_mints.rb +11 -11
- data/samples/sprues/_sprue_example.rb +11 -11
- data/samples/text/_embed_text.rb +128 -128
- data/samples/text/_text.rb +47 -47
- data/samples/text/_text_options.rb +102 -102
- data/samples/text/bug134.rb +14 -14
- data/samples/units/_units.rb +32 -32
- data/squib.gemspec +52 -52
- metadata +51 -48
data/lib/squib/commands/new.rb
CHANGED
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
require 'fileutils'
|
|
2
|
-
|
|
3
|
-
module Squib
|
|
4
|
-
# Squib's command-line options
|
|
5
|
-
module Commands
|
|
6
|
-
|
|
7
|
-
# Generate a new Squib project into a fresh directory.
|
|
8
|
-
#
|
|
9
|
-
# Provides conventions for using Git (you are using version control, right??).
|
|
10
|
-
# Also provides some basic layout and config files to start from, along with templates for instructions and other notes you don't want to forget.
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
# @example
|
|
14
|
-
# squib new foo-blasters
|
|
15
|
-
# cd foo-blasters
|
|
16
|
-
# ruby deck.rb
|
|
17
|
-
# git init
|
|
18
|
-
# git add .
|
|
19
|
-
# git commit -m "Starting my cool new game using Squib!"
|
|
20
|
-
#
|
|
21
|
-
# @api public
|
|
22
|
-
class New
|
|
23
|
-
|
|
24
|
-
# :nodoc:
|
|
25
|
-
# @api private
|
|
26
|
-
def process(args, advanced)
|
|
27
|
-
raise empty_path_error if args.empty?
|
|
28
|
-
|
|
29
|
-
new_project_path = File.expand_path(args.join(' '), Dir.pwd)
|
|
30
|
-
|
|
31
|
-
FileUtils.mkdir_p new_project_path
|
|
32
|
-
if !Dir["#{new_project_path}/**/*"].empty?
|
|
33
|
-
$stderr.puts "#{new_project_path} exists and is not empty. Doing nothing and quitting."
|
|
34
|
-
else
|
|
35
|
-
Dir.chdir(new_project_path) do
|
|
36
|
-
FileUtils.cp_r template_path(advanced) + '/.', new_project_path
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
puts "Created basic Squib project in #{new_project_path}."
|
|
40
|
-
puts advanced_message if advanced
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def empty_path_error
|
|
44
|
-
ArgumentError.new('Please specify a path.')
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def template_path(advanced)
|
|
48
|
-
path = case advanced
|
|
49
|
-
when true
|
|
50
|
-
'../builtin/projects/advanced'
|
|
51
|
-
else
|
|
52
|
-
'../builtin/projects/basic'
|
|
53
|
-
end
|
|
54
|
-
File.expand_path(path, File.dirname(__FILE__))
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def advanced_message
|
|
58
|
-
<<-EOS
|
|
59
|
-
|
|
60
|
-
This is the advanced layout designed for larger games. Everything is
|
|
61
|
-
organized into separate directories and the workflow is all based on
|
|
62
|
-
the Rakefile.
|
|
63
|
-
|
|
64
|
-
From within this directory, run `bundle install` to install extra
|
|
65
|
-
gems.
|
|
66
|
-
|
|
67
|
-
After that, run `rake` to build. Check out the Rakefile for more.
|
|
68
|
-
|
|
69
|
-
Happy Squibbing! And best of luck with your game.
|
|
70
|
-
-Andy (@andymeneely)
|
|
71
|
-
|
|
72
|
-
EOS
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
1
|
+
require 'fileutils'
|
|
2
|
+
|
|
3
|
+
module Squib
|
|
4
|
+
# Squib's command-line options
|
|
5
|
+
module Commands
|
|
6
|
+
|
|
7
|
+
# Generate a new Squib project into a fresh directory.
|
|
8
|
+
#
|
|
9
|
+
# Provides conventions for using Git (you are using version control, right??).
|
|
10
|
+
# Also provides some basic layout and config files to start from, along with templates for instructions and other notes you don't want to forget.
|
|
11
|
+
#
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# squib new foo-blasters
|
|
15
|
+
# cd foo-blasters
|
|
16
|
+
# ruby deck.rb
|
|
17
|
+
# git init
|
|
18
|
+
# git add .
|
|
19
|
+
# git commit -m "Starting my cool new game using Squib!"
|
|
20
|
+
#
|
|
21
|
+
# @api public
|
|
22
|
+
class New
|
|
23
|
+
|
|
24
|
+
# :nodoc:
|
|
25
|
+
# @api private
|
|
26
|
+
def process(args, advanced)
|
|
27
|
+
raise empty_path_error if args.empty?
|
|
28
|
+
|
|
29
|
+
new_project_path = File.expand_path(args.join(' '), Dir.pwd)
|
|
30
|
+
|
|
31
|
+
FileUtils.mkdir_p new_project_path
|
|
32
|
+
if !Dir["#{new_project_path}/**/*"].empty?
|
|
33
|
+
$stderr.puts "#{new_project_path} exists and is not empty. Doing nothing and quitting."
|
|
34
|
+
else
|
|
35
|
+
Dir.chdir(new_project_path) do
|
|
36
|
+
FileUtils.cp_r template_path(advanced) + '/.', new_project_path
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
puts "Created basic Squib project in #{new_project_path}."
|
|
40
|
+
puts advanced_message if advanced
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def empty_path_error
|
|
44
|
+
ArgumentError.new('Please specify a path.')
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def template_path(advanced)
|
|
48
|
+
path = case advanced
|
|
49
|
+
when true
|
|
50
|
+
'../builtin/projects/advanced'
|
|
51
|
+
else
|
|
52
|
+
'../builtin/projects/basic'
|
|
53
|
+
end
|
|
54
|
+
File.expand_path(path, File.dirname(__FILE__))
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def advanced_message
|
|
58
|
+
<<-EOS
|
|
59
|
+
|
|
60
|
+
This is the advanced layout designed for larger games. Everything is
|
|
61
|
+
organized into separate directories and the workflow is all based on
|
|
62
|
+
the Rakefile.
|
|
63
|
+
|
|
64
|
+
From within this directory, run `bundle install` to install extra
|
|
65
|
+
gems.
|
|
66
|
+
|
|
67
|
+
After that, run `rake` to build. Check out the Rakefile for more.
|
|
68
|
+
|
|
69
|
+
Happy Squibbing! And best of luck with your game.
|
|
70
|
+
-Andy (@andymeneely)
|
|
71
|
+
|
|
72
|
+
EOS
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
data/lib/squib/conf.rb
CHANGED
|
@@ -1,139 +1,144 @@
|
|
|
1
|
-
require 'forwardable'
|
|
2
|
-
require 'yaml'
|
|
3
|
-
require_relative 'args/typographer'
|
|
4
|
-
|
|
5
|
-
module Squib
|
|
6
|
-
USER_CONFIG = {}
|
|
7
|
-
|
|
8
|
-
def configure(opts)
|
|
9
|
-
str_hash = opts.inject({}) { |h, (k, v)| h[k.to_s] = v; h }
|
|
10
|
-
USER_CONFIG.merge! str_hash
|
|
11
|
-
end
|
|
12
|
-
module_function :configure
|
|
13
|
-
|
|
14
|
-
# @api private
|
|
15
|
-
class Conf
|
|
16
|
-
|
|
17
|
-
DEFAULTS = {
|
|
18
|
-
'antialias' => 'best',
|
|
19
|
-
'backend' => 'memory',
|
|
20
|
-
'count_format' => '%02d',
|
|
21
|
-
'custom_colors' => {},
|
|
22
|
-
'dir' => '_output',
|
|
23
|
-
'hint' => :none,
|
|
24
|
-
'img_dir' => '.',
|
|
25
|
-
'progress_bars' => false,
|
|
26
|
-
'prefix' => 'card_',
|
|
27
|
-
'ldquote' => "\u201C", # UTF8 chars
|
|
28
|
-
'rdquote' => "\u201D",
|
|
29
|
-
'lsquote' => "\u2018",
|
|
30
|
-
'rsquote' => "\u2019",
|
|
31
|
-
'em_dash' => "\u2014",
|
|
32
|
-
'en_dash' => "\u2013",
|
|
33
|
-
'ellipsis' => "\u2026",
|
|
34
|
-
'smart_quotes' => true,
|
|
35
|
-
'text_hint' => 'off',
|
|
36
|
-
'warn_ellipsize' => true,
|
|
37
|
-
'warn_png_scale' => true,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
'
|
|
47
|
-
'
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
@
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
#
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
def
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
1
|
+
require 'forwardable'
|
|
2
|
+
require 'yaml'
|
|
3
|
+
require_relative 'args/typographer'
|
|
4
|
+
|
|
5
|
+
module Squib
|
|
6
|
+
USER_CONFIG = {}
|
|
7
|
+
|
|
8
|
+
def configure(opts)
|
|
9
|
+
str_hash = opts.inject({}) { |h, (k, v)| h[k.to_s] = v; h }
|
|
10
|
+
USER_CONFIG.merge! str_hash
|
|
11
|
+
end
|
|
12
|
+
module_function :configure
|
|
13
|
+
|
|
14
|
+
# @api private
|
|
15
|
+
class Conf
|
|
16
|
+
|
|
17
|
+
DEFAULTS = {
|
|
18
|
+
'antialias' => 'best',
|
|
19
|
+
'backend' => 'memory',
|
|
20
|
+
'count_format' => '%02d',
|
|
21
|
+
'custom_colors' => {},
|
|
22
|
+
'dir' => '_output',
|
|
23
|
+
'hint' => :none,
|
|
24
|
+
'img_dir' => '.',
|
|
25
|
+
'progress_bars' => false,
|
|
26
|
+
'prefix' => 'card_',
|
|
27
|
+
'ldquote' => "\u201C", # UTF8 chars
|
|
28
|
+
'rdquote' => "\u201D",
|
|
29
|
+
'lsquote' => "\u2018",
|
|
30
|
+
'rsquote' => "\u2019",
|
|
31
|
+
'em_dash' => "\u2014",
|
|
32
|
+
'en_dash' => "\u2013",
|
|
33
|
+
'ellipsis' => "\u2026",
|
|
34
|
+
'smart_quotes' => true,
|
|
35
|
+
'text_hint' => 'off',
|
|
36
|
+
'warn_ellipsize' => true,
|
|
37
|
+
'warn_png_scale' => true,
|
|
38
|
+
'warn_zero_size_image' => true,
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
# Translate the hints to the methods.
|
|
42
|
+
ANTIALIAS_OPTS = {
|
|
43
|
+
nil => 'subpixel',
|
|
44
|
+
'best' => 'subpixel',
|
|
45
|
+
'good' => 'gray',
|
|
46
|
+
'fast' => 'gray',
|
|
47
|
+
'gray' => 'gray',
|
|
48
|
+
'subpixel' => 'subpixel'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
def initialize(config_hash = DEFAULTS)
|
|
52
|
+
@config_hash = config_hash.merge USER_CONFIG # programmatic overrides yml
|
|
53
|
+
@typographer = Args::Typographer.new(config_hash)
|
|
54
|
+
normalize_antialias
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Load the configuration file, if exists, overriding hardcoded defaults
|
|
58
|
+
# @api private
|
|
59
|
+
def self.load(file)
|
|
60
|
+
yaml = {}
|
|
61
|
+
if File.exists? file
|
|
62
|
+
Squib::logger.info { " using config: #{file}" }
|
|
63
|
+
yaml = YAML.load_file(file) || {}
|
|
64
|
+
end
|
|
65
|
+
warn_unrecognized(yaml)
|
|
66
|
+
Conf.new(DEFAULTS.merge(yaml))
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def to_s
|
|
70
|
+
"Conf: #{@config_hash.to_s}"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def img_dir
|
|
74
|
+
@config_hash['img_dir']
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def text_hint
|
|
78
|
+
@config_hash['text_hint']
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def text_hint=(hint)
|
|
82
|
+
@config_hash['text_hint'] = hint
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def progress_bars
|
|
86
|
+
@config_hash['progress_bars']
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def typographer
|
|
90
|
+
@typographer
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def dir
|
|
94
|
+
@config_hash['dir']
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def prefix
|
|
98
|
+
@config_hash['prefix']
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def count_format
|
|
102
|
+
@config_hash['count_format']
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def antialias
|
|
106
|
+
@config_hash['antialias']
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def backend
|
|
110
|
+
@config_hash['backend']
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def custom_colors
|
|
114
|
+
@config_hash['custom_colors']
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def warn_ellipsize?
|
|
118
|
+
@config_hash['warn_ellipsize']
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def warn_png_scale?
|
|
122
|
+
@config_hash['warn_png_scale']
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def warn_zero_size_image?
|
|
126
|
+
@config_hash['warn_zero_size_image']
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
private
|
|
130
|
+
|
|
131
|
+
def normalize_antialias
|
|
132
|
+
@config_hash['antialias'] = ANTIALIAS_OPTS[@config_hash['antialias'].downcase.strip]
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Were there any unrecognized options in the config file?
|
|
136
|
+
def self.warn_unrecognized(yaml)
|
|
137
|
+
unrec = yaml.keys - DEFAULTS.keys
|
|
138
|
+
if unrec.any?
|
|
139
|
+
Squib::logger.warn "Unrecognized configuration option(s): #{unrec.join(',')}"
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
end
|
|
144
|
+
end
|
data/lib/squib/constants.rb
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
module Squib
|
|
2
|
-
|
|
3
|
-
# System-wide default font
|
|
4
|
-
# :nodoc:
|
|
5
|
-
# @api public
|
|
6
|
-
DEFAULT_FONT = 'Arial 12'
|
|
7
|
-
|
|
8
|
-
# Used for inch-cm conversion
|
|
9
|
-
# :nodoc:
|
|
10
|
-
# @api private
|
|
11
|
-
INCHES_IN_CM = 0.393700787
|
|
12
|
-
|
|
13
|
-
# Used for points-inch conversion
|
|
14
|
-
# :nodoc:
|
|
15
|
-
# @api private
|
|
16
|
-
POINTS_PER_IN = 72.0
|
|
17
|
-
end
|
|
1
|
+
module Squib
|
|
2
|
+
|
|
3
|
+
# System-wide default font
|
|
4
|
+
# :nodoc:
|
|
5
|
+
# @api public
|
|
6
|
+
DEFAULT_FONT = 'Arial 12'
|
|
7
|
+
|
|
8
|
+
# Used for inch-cm conversion
|
|
9
|
+
# :nodoc:
|
|
10
|
+
# @api private
|
|
11
|
+
INCHES_IN_CM = 0.393700787
|
|
12
|
+
|
|
13
|
+
# Used for points-inch conversion
|
|
14
|
+
# :nodoc:
|
|
15
|
+
# @api private
|
|
16
|
+
POINTS_PER_IN = 72.0
|
|
17
|
+
end
|