usps_flags 0.1.24 → 0.1.25
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Gemfile.lock +1 -1
- data/lib/usps_flags/generate.rb +176 -263
- data/lib/usps_flags/helpers.rb +41 -20
- data/spec/spec_helper.rb +1 -8
- data/spec/usps_flags/generate_spec.rb +10 -1
- data/spec/usps_flags/helpers_spec.rb +1 -1
- data/usps_flags.gemspec +1 -1
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 143f1a8c230ced0a6083dc05b6f37f95e8069d7a
|
4
|
+
data.tar.gz: 6edb326954eb641bb49db42d949983f93f528d3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ac2761bf82c24039358ae4b5eadb66cb7f92f8b5e5624594018ca7916fc969f990d0eed04474e987ea00b24a4e73d739d6ee33ba9a9a38751c4088996da7c1d
|
7
|
+
data.tar.gz: fb7c5156a9a3c07c0e14d87d4776c670099bd16d896eec6d1cf21907da200106de8688238e66dcea3b44b5414573625dbed923b40e541d8efa92170c440bfeba
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Gemfile.lock
CHANGED
data/lib/usps_flags/generate.rb
CHANGED
@@ -52,19 +52,9 @@ class USPSFlags::Generate
|
|
52
52
|
# @param [Boolean] zips Whether to create zip archives for all images created. Does not create a zip for skipped formats.
|
53
53
|
# @param [Boolean] reset Whether to delete all previous files before generating new files.
|
54
54
|
def self.all(svg: true, png: true, zips: true, reset: true)
|
55
|
-
if reset
|
56
|
-
::FileUtils.rm_rf(Dir.glob("#{USPSFlags::Config.flags_dir}/SVG/*"))
|
57
|
-
::FileUtils.rm_rf(Dir.glob("#{USPSFlags::Config.flags_dir}/PNG/*"))
|
58
|
-
::FileUtils.rm_rf(Dir.glob("#{USPSFlags::Config.flags_dir}/ZIP/*"))
|
59
|
-
::FileUtils.mkdir_p("#{USPSFlags::Config.flags_dir}/SVG/insignia")
|
60
|
-
::FileUtils.mkdir_p("#{USPSFlags::Config.flags_dir}/PNG/insignia")
|
61
|
-
puts "Cleared previous files."
|
62
|
-
end
|
63
|
-
|
64
|
-
flags = USPSFlags::Helpers.valid_flags(:all)
|
65
|
-
insignia_flags = USPSFlags::Helpers.valid_flags(:insignia)
|
55
|
+
self.remove_static_files if reset
|
66
56
|
|
67
|
-
max_length =
|
57
|
+
max_length = USPSFlags::Helpers.valid_flags(:all).map(&:length).max
|
68
58
|
puts "\nSVGs generate a single file.",
|
69
59
|
"PNGs generate full-res, 1500w, 1000w, 500w, and thumbnail files.",
|
70
60
|
"Corresponding rank insignia (including smaller sizes) are also generated, as appropriate."
|
@@ -74,108 +64,8 @@ class USPSFlags::Generate
|
|
74
64
|
|
75
65
|
overall_start_time = Time.now
|
76
66
|
|
77
|
-
|
78
|
-
|
79
|
-
USPSFlags::Helpers.log " | | _ _ _ _ _ | \r".rjust(max_length+31, " ")
|
80
|
-
flag = flag.upcase
|
81
|
-
USPSFlags::Helpers.log "#{flag.rjust(max_length)} |"
|
82
|
-
|
83
|
-
svg_file = "#{USPSFlags::Config.flags_dir}/SVG/#{flag}.svg"
|
84
|
-
png_file = "#{USPSFlags::Config.flags_dir}/PNG/#{flag}.png"
|
85
|
-
|
86
|
-
svg_ins_file = "#{USPSFlags::Config.flags_dir}/SVG/insignia/#{flag}.svg"
|
87
|
-
png_ins_file = "#{USPSFlags::Config.flags_dir}/PNG/insignia/#{flag}.png"
|
88
|
-
|
89
|
-
past = (flag[0] == "P" && flag != "PORTCAP")
|
90
|
-
|
91
|
-
if svg
|
92
|
-
begin
|
93
|
-
USPSFlags::Helpers.log " "
|
94
|
-
self.get flag, outfile: svg_file, scale: 1
|
95
|
-
USPSFlags::Helpers.log "S"
|
96
|
-
if past || !insignia_flags.include?(flag)
|
97
|
-
USPSFlags::Helpers.log "-"
|
98
|
-
else
|
99
|
-
self.get flag, field: false, outfile: svg_ins_file, scale: 1
|
100
|
-
USPSFlags::Helpers.log "I"
|
101
|
-
end
|
102
|
-
rescue => e
|
103
|
-
USPSFlags::Helpers.log "x -> #{e.message}"
|
104
|
-
end
|
105
|
-
else
|
106
|
-
USPSFlags::Helpers.log "-"
|
107
|
-
end
|
108
|
-
|
109
|
-
if png
|
110
|
-
USPSFlags::Helpers.log " | "
|
111
|
-
begin
|
112
|
-
USPSFlags::Helpers.log "…\b"
|
113
|
-
USPSFlags::Generate.png(File.read(svg_file), outfile: png_file) unless ::File.exists?(png_file)
|
114
|
-
USPSFlags::Helpers.log "F"
|
115
|
-
if past || !insignia_flags.include?(flag)
|
116
|
-
USPSFlags::Helpers.log "-"
|
117
|
-
else
|
118
|
-
USPSFlags::Helpers.log "…\b"
|
119
|
-
USPSFlags::Generate.png(File.read(svg_ins_file), outfile: png_ins_file, trim: true) unless ::File.exists?(png_ins_file)
|
120
|
-
USPSFlags::Helpers.log "I"
|
121
|
-
end
|
122
|
-
sizes = {1500 => "H", 1000 => "K", 500 => "D", "thumb" => "T"}
|
123
|
-
sizes.keys.each do |size|
|
124
|
-
if ::File.exists?("#{USPSFlags::Config.flags_dir}/PNG/#{flag}.#{size}.png")
|
125
|
-
USPSFlags::Helpers.log "."
|
126
|
-
else
|
127
|
-
USPSFlags::Helpers.log "…\b"
|
128
|
-
if size == "thumb"
|
129
|
-
size_key = size
|
130
|
-
size = case flag
|
131
|
-
when "ENSIGN"
|
132
|
-
200
|
133
|
-
when "US"
|
134
|
-
300
|
135
|
-
else
|
136
|
-
150
|
137
|
-
end
|
138
|
-
else
|
139
|
-
size_key = size
|
140
|
-
end
|
141
|
-
MiniMagick::Tool::Convert.new do |convert|
|
142
|
-
convert << "-background" << "none"
|
143
|
-
convert << "-format" << "png"
|
144
|
-
convert << "-resize" << "#{size}"
|
145
|
-
convert << png_file
|
146
|
-
convert << "#{USPSFlags::Config.flags_dir}/PNG/#{flag}.#{size_key}.png"
|
147
|
-
end
|
148
|
-
USPSFlags::Helpers.log sizes[size_key]
|
149
|
-
|
150
|
-
if ::File.exists?(png_ins_file)
|
151
|
-
if ::File.exists?("#{USPSFlags::Config.flags_dir}/PNG/insignia/#{flag}.#{size}.png")
|
152
|
-
USPSFlags::Helpers.log "."
|
153
|
-
elsif MiniMagick::Image.open(png_ins_file)[:width] > size
|
154
|
-
USPSFlags::Helpers.log "…\b"
|
155
|
-
MiniMagick::Tool::Convert.new do |convert|
|
156
|
-
convert << "-background" << "none"
|
157
|
-
convert << "-format" << "png"
|
158
|
-
convert << "-resize" << "#{size}"
|
159
|
-
convert << png_ins_file
|
160
|
-
convert << "#{USPSFlags::Config.flags_dir}/PNG/insignia/#{flag}.#{size_key}.png"
|
161
|
-
end
|
162
|
-
USPSFlags::Helpers.log "i"
|
163
|
-
else
|
164
|
-
USPSFlags::Helpers.log "+"
|
165
|
-
end
|
166
|
-
else
|
167
|
-
USPSFlags::Helpers.log "-"
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
rescue => e
|
172
|
-
USPSFlags::Helpers.log "x -> #{e.message}"
|
173
|
-
end
|
174
|
-
else
|
175
|
-
USPSFlags::Helpers.log "- "
|
176
|
-
end
|
177
|
-
run_time = (Time.now - start_time).round(4).to_s[(0..5)].ljust(6, "0")
|
178
|
-
USPSFlags::Helpers.log " | #{run_time} s\n"
|
67
|
+
USPSFlags::Helpers.valid_flags(:all).each do |flag|
|
68
|
+
self.generate_static_images_for(flag, svg: svg, png: png)
|
179
69
|
end
|
180
70
|
|
181
71
|
self.zips(svg: svg, png: png) if zips
|
@@ -241,151 +131,66 @@ class USPSFlags::Generate
|
|
241
131
|
def self.flag(rank: nil, width: USPSFlags::Config::BASE_FLY, outfile: nil, scale: nil, field: true)
|
242
132
|
raise "Error: No rank specified." if rank.nil?
|
243
133
|
final_svg = ""
|
244
|
-
|
245
134
|
final_svg << USPSFlags::Core.headers(scale: scale, title: rank)
|
246
135
|
|
247
|
-
rank
|
136
|
+
rank = rank.to_s.upcase
|
137
|
+
rank.slice!(0) if !field && USPSFlags::Helpers.valid_flags(:past).include?(rank)
|
248
138
|
rank = "CDR" if rank == "C"
|
249
139
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
style = :past
|
258
|
-
color = :blue
|
259
|
-
type = :s
|
260
|
-
count = 3
|
261
|
-
when "PORTCAP"
|
262
|
-
style = :swallowtail
|
263
|
-
color = :white
|
264
|
-
type = :pc
|
265
|
-
count = 1
|
266
|
-
when "FLEETCAP"
|
267
|
-
style = :swallowtail
|
268
|
-
color = :white
|
269
|
-
type = :fc
|
270
|
-
count = 1
|
271
|
-
when "LT"
|
272
|
-
style = :swallowtail
|
273
|
-
color = :white
|
274
|
-
type = :s
|
275
|
-
count = 1
|
276
|
-
when "FLT"
|
277
|
-
style = :swallowtail
|
278
|
-
color = :white
|
279
|
-
type = :f
|
280
|
-
count = 1
|
281
|
-
when "1LT"
|
282
|
-
style = :regular
|
283
|
-
color = :white
|
284
|
-
type = :s
|
285
|
-
count = 1
|
286
|
-
when "LTC"
|
287
|
-
style = :regular
|
288
|
-
color = :red
|
289
|
-
type = :s
|
290
|
-
count = 2
|
291
|
-
when "CDR"
|
292
|
-
style = :regular
|
293
|
-
color = :blue
|
294
|
-
type = :s
|
295
|
-
count = 3
|
140
|
+
style = if USPSFlags::Helpers.valid_flags(:past).include?(rank)
|
141
|
+
:past
|
142
|
+
elsif USPSFlags::Helpers.valid_flags(:swallowtail).include?(rank)
|
143
|
+
:swallowtail
|
144
|
+
else
|
145
|
+
:regular
|
146
|
+
end
|
296
147
|
|
297
|
-
|
298
|
-
style = :past
|
299
|
-
color = :red
|
300
|
-
type = :d
|
301
|
-
count = 2
|
302
|
-
when "PDC"
|
303
|
-
style = :past
|
304
|
-
color = :blue
|
305
|
-
type = :d
|
148
|
+
color = if USPSFlags::Helpers.valid_flags(:command).include?(rank)
|
306
149
|
count = 3
|
307
|
-
|
308
|
-
|
309
|
-
color = :white
|
310
|
-
type = :d
|
311
|
-
count = 1
|
312
|
-
when "DAIDE"
|
313
|
-
style = :swallowtail
|
314
|
-
color = :white
|
315
|
-
type = :a
|
316
|
-
count = 1
|
317
|
-
when "DFLT"
|
318
|
-
style = :swallowtail
|
319
|
-
color = :white
|
320
|
-
type = :f
|
321
|
-
count = 2
|
322
|
-
when "D1LT"
|
323
|
-
style = :regular
|
324
|
-
color = :white
|
325
|
-
type = :d
|
326
|
-
count = 1
|
327
|
-
when "DLTC"
|
328
|
-
style = :regular
|
329
|
-
color = :red
|
330
|
-
type = :d
|
150
|
+
:blue
|
151
|
+
elsif USPSFlags::Helpers.valid_flags(:bridge).include?(rank)
|
331
152
|
count = 2
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
count = 3
|
153
|
+
:red
|
154
|
+
else
|
155
|
+
:white
|
156
|
+
end
|
337
157
|
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
158
|
+
trident_color = field ? :white : color
|
159
|
+
|
160
|
+
type = if USPSFlags::Helpers.valid_flags(:squadron).include?(rank)
|
161
|
+
:s
|
162
|
+
elsif USPSFlags::Helpers.valid_flags(:district).include?(rank)
|
163
|
+
:d
|
164
|
+
elsif rank == "STFC"
|
165
|
+
:stf
|
166
|
+
elsif USPSFlags::Helpers.valid_flags(:national).include?(rank)
|
167
|
+
:n
|
168
|
+
elsif rank == "PORTCAP"
|
169
|
+
:pc
|
170
|
+
elsif rank == "FLEETCAP"
|
171
|
+
:fc
|
172
|
+
elsif rank == "DAIDE"
|
342
173
|
count = 1
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
type = :n
|
347
|
-
count = 1
|
348
|
-
when "PVC"
|
349
|
-
style = :past
|
350
|
-
color = :red
|
351
|
-
type = :n
|
352
|
-
count = 2
|
353
|
-
when "PCC"
|
354
|
-
style = :past
|
355
|
-
color = :blue
|
356
|
-
type = :n
|
357
|
-
count = 3
|
358
|
-
when "NAIDE"
|
359
|
-
style = :swallowtail
|
360
|
-
color = :white
|
361
|
-
type = :a
|
174
|
+
level = :d
|
175
|
+
:a
|
176
|
+
elsif rank == "NAIDE"
|
362
177
|
count = 2
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
type = :f
|
367
|
-
count = 3
|
368
|
-
when "STFC"
|
369
|
-
style = :regular
|
370
|
-
color = :white
|
371
|
-
type = :stf
|
178
|
+
level = :n
|
179
|
+
:a
|
180
|
+
elsif rank == "FLT"
|
372
181
|
count = 1
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
type = :n
|
377
|
-
count = 1
|
378
|
-
when "VC"
|
379
|
-
style = :regular
|
380
|
-
color = :red
|
381
|
-
type = :n
|
182
|
+
level = :s
|
183
|
+
:f
|
184
|
+
elsif rank == "DFLT"
|
382
185
|
count = 2
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
type = :n
|
186
|
+
level = :d
|
187
|
+
:f
|
188
|
+
elsif rank == "NFLT"
|
387
189
|
count = 3
|
190
|
+
level = :n
|
191
|
+
:f
|
388
192
|
end
|
193
|
+
count ||= 1
|
389
194
|
|
390
195
|
final_svg << USPSFlags::Core.field(style: style, color: color) if field
|
391
196
|
|
@@ -393,7 +198,7 @@ class USPSFlags::Generate
|
|
393
198
|
|
394
199
|
if type == :n && count == 3
|
395
200
|
# The side C/C tridents are angled 45 degrees, and intersect the central one at 1/3 up from the bottom
|
396
|
-
trident = USPSFlags::Core.trident(type, color:
|
201
|
+
trident = USPSFlags::Core.trident(type, color: trident_color)
|
397
202
|
x_distance = USPSFlags::Config::BASE_FLY*4/39
|
398
203
|
y_distance = USPSFlags::Config::BASE_FLY*5/78
|
399
204
|
final_svg << "<g transform=\"translate(-#{x_distance}, #{y_distance})\"><g transform=\"rotate(-45, #{USPSFlags::Config::BASE_FLY/2}, #{USPSFlags::Config::BASE_HOIST/2})\">\n#{trident}</g></g>"
|
@@ -401,13 +206,13 @@ class USPSFlags::Generate
|
|
401
206
|
final_svg << "<g transform=\"translate(#{x_distance}, #{y_distance})\"><g transform=\"rotate(45, #{USPSFlags::Config::BASE_FLY/2}, #{USPSFlags::Config::BASE_HOIST/2})\">\n#{trident}</g></g>"
|
402
207
|
elsif type == :n && count == 2
|
403
208
|
# V/C tridents are angled 45 degrees, and intersect at 15/32 up from the bottom
|
404
|
-
trident = USPSFlags::Core.trident(type, color:
|
209
|
+
trident = USPSFlags::Core.trident(type, color: trident_color)
|
405
210
|
x_distance = USPSFlags::Config::BASE_FLY*4/55
|
406
211
|
final_svg << "<g transform=\"translate(-#{x_distance})\"><g transform=\"rotate(-45, #{USPSFlags::Config::BASE_FLY/2}, #{USPSFlags::Config::BASE_HOIST/2})\">\n#{trident}</g></g>"
|
407
212
|
final_svg << "<g transform=\"translate(#{x_distance})\"><g transform=\"rotate(45, #{USPSFlags::Config::BASE_FLY/2}, #{USPSFlags::Config::BASE_HOIST/2})\">\n#{trident}</g></g>"
|
408
213
|
elsif [:s, :d].include?(type) && count == 3
|
409
214
|
# Cdr and D/C tridents are spaced 1/2 the fly apart with the central one 1/4 the fly above the sides
|
410
|
-
trident = USPSFlags::Core.trident(type, color:
|
215
|
+
trident = USPSFlags::Core.trident(type, color: trident_color, field_color: color)
|
411
216
|
x_distance = USPSFlags::Config::BASE_FLY/4
|
412
217
|
y_distance = USPSFlags::Config::BASE_FLY/16
|
413
218
|
final_svg << "<g transform=\"translate(-#{x_distance}, #{y_distance})\">\n#{trident}</g>"
|
@@ -415,7 +220,7 @@ class USPSFlags::Generate
|
|
415
220
|
final_svg << "<g transform=\"translate(#{x_distance}, #{y_distance})\">\n#{trident}</g>"
|
416
221
|
elsif [:s, :d].include?(type) && count == 2
|
417
222
|
# Lt/C and D/Lt/C tridents are spaced 1/3 the fly apart
|
418
|
-
trident = USPSFlags::Core.trident(type, color:
|
223
|
+
trident = USPSFlags::Core.trident(type, color: trident_color, field_color: color)
|
419
224
|
x_distance = USPSFlags::Config::BASE_FLY/6
|
420
225
|
final_svg << "<g transform=\"translate(-#{x_distance})\">\n#{trident}</g>"
|
421
226
|
final_svg << "<g transform=\"translate(#{x_distance})\">\n#{trident}</g>"
|
@@ -437,22 +242,8 @@ class USPSFlags::Generate
|
|
437
242
|
final_svg << "<g transform=\"scale(#{Rational(USPSFlags::Config::BASE_FLY/3000).to_f})\">"
|
438
243
|
case type
|
439
244
|
when :a
|
440
|
-
level = case count
|
441
|
-
when 1
|
442
|
-
:d
|
443
|
-
when 2
|
444
|
-
:n
|
445
|
-
end
|
446
245
|
final_svg << USPSFlags::Core.binoculars(level)
|
447
246
|
when :f
|
448
|
-
level = case count
|
449
|
-
when 1
|
450
|
-
:s
|
451
|
-
when 2
|
452
|
-
:d
|
453
|
-
when 3
|
454
|
-
:n
|
455
|
-
end
|
456
247
|
final_svg << USPSFlags::Core.trumpet(level)
|
457
248
|
when :fc
|
458
249
|
final_svg << USPSFlags::Core.anchor
|
@@ -552,4 +343,126 @@ class USPSFlags::Generate
|
|
552
343
|
end
|
553
344
|
final_svg
|
554
345
|
end
|
346
|
+
|
347
|
+
private
|
348
|
+
def self.remove_static_files
|
349
|
+
::FileUtils.rm_rf(Dir.glob("#{USPSFlags::Config.flags_dir}/SVG/*"))
|
350
|
+
::FileUtils.rm_rf(Dir.glob("#{USPSFlags::Config.flags_dir}/PNG/*"))
|
351
|
+
::FileUtils.rm_rf(Dir.glob("#{USPSFlags::Config.flags_dir}/ZIP/*"))
|
352
|
+
::FileUtils.mkdir_p("#{USPSFlags::Config.flags_dir}/SVG/insignia")
|
353
|
+
::FileUtils.mkdir_p("#{USPSFlags::Config.flags_dir}/PNG/insignia")
|
354
|
+
puts "Cleared previous files."
|
355
|
+
end
|
356
|
+
|
357
|
+
def self.generate_static_images_for(flag, svg: true, png: true)
|
358
|
+
start_time = Time.now
|
359
|
+
USPSFlags::Helpers.log " | | _ _ _ _ _ | \r".rjust(max_length+31, " ")
|
360
|
+
flag = flag.upcase
|
361
|
+
USPSFlags::Helpers.log "#{flag.rjust(max_length)} |"
|
362
|
+
|
363
|
+
svg_file = "#{USPSFlags::Config.flags_dir}/SVG/#{flag}.svg"
|
364
|
+
png_file = "#{USPSFlags::Config.flags_dir}/PNG/#{flag}.png"
|
365
|
+
|
366
|
+
svg_ins_file = "#{USPSFlags::Config.flags_dir}/SVG/insignia/#{flag}.svg"
|
367
|
+
png_ins_file = "#{USPSFlags::Config.flags_dir}/PNG/insignia/#{flag}.png"
|
368
|
+
|
369
|
+
past = (flag[0] == "P" && flag != "PORTCAP")
|
370
|
+
|
371
|
+
if svg
|
372
|
+
self.generate_static_svg(flag, svg_file)
|
373
|
+
else
|
374
|
+
USPSFlags::Helpers.log "-"
|
375
|
+
end
|
376
|
+
|
377
|
+
if png
|
378
|
+
self.generate_static_png(flag, png_file)
|
379
|
+
else
|
380
|
+
USPSFlags::Helpers.log "- "
|
381
|
+
end
|
382
|
+
run_time = (Time.now - start_time).round(4).to_s[(0..5)].ljust(6, "0")
|
383
|
+
USPSFlags::Helpers.log " | #{run_time} s\n"
|
384
|
+
end
|
385
|
+
|
386
|
+
def self.generate_static_svg(flag, svg_file)
|
387
|
+
begin
|
388
|
+
USPSFlags::Helpers.log " "
|
389
|
+
self.get flag, outfile: svg_file, scale: 1
|
390
|
+
USPSFlags::Helpers.log "S"
|
391
|
+
if past || !USPSFlags::Helpers.valid_flags(:insignia).include?(flag)
|
392
|
+
USPSFlags::Helpers.log "-"
|
393
|
+
else
|
394
|
+
self.get flag, field: false, outfile: svg_ins_file, scale: 1
|
395
|
+
USPSFlags::Helpers.log "I"
|
396
|
+
end
|
397
|
+
rescue => e
|
398
|
+
USPSFlags::Helpers.log "x -> #{e.message}"
|
399
|
+
end
|
400
|
+
end
|
401
|
+
|
402
|
+
def self.generate_static_png(flag, png_file)
|
403
|
+
USPSFlags::Helpers.log " | "
|
404
|
+
begin
|
405
|
+
USPSFlags::Helpers.log "…\b"
|
406
|
+
USPSFlags::Generate.png(File.read(svg_file), outfile: png_file) unless ::File.exists?(png_file)
|
407
|
+
USPSFlags::Helpers.log "F"
|
408
|
+
if past || !insignia_flags.include?(flag)
|
409
|
+
USPSFlags::Helpers.log "-"
|
410
|
+
else
|
411
|
+
USPSFlags::Helpers.log "…\b"
|
412
|
+
USPSFlags::Generate.png(File.read(svg_ins_file), outfile: png_ins_file, trim: true) unless ::File.exists?(png_ins_file)
|
413
|
+
USPSFlags::Helpers.log "I"
|
414
|
+
end
|
415
|
+
sizes = {1500 => "H", 1000 => "K", 500 => "D", "thumb" => "T"}
|
416
|
+
sizes.keys.each do |size|
|
417
|
+
if ::File.exists?("#{USPSFlags::Config.flags_dir}/PNG/#{flag}.#{size}.png")
|
418
|
+
USPSFlags::Helpers.log "."
|
419
|
+
else
|
420
|
+
USPSFlags::Helpers.log "…\b"
|
421
|
+
if size == "thumb"
|
422
|
+
size_key = size
|
423
|
+
size = case flag
|
424
|
+
when "ENSIGN"
|
425
|
+
200
|
426
|
+
when "US"
|
427
|
+
300
|
428
|
+
else
|
429
|
+
150
|
430
|
+
end
|
431
|
+
else
|
432
|
+
size_key = size
|
433
|
+
end
|
434
|
+
MiniMagick::Tool::Convert.new do |convert|
|
435
|
+
convert << "-background" << "none"
|
436
|
+
convert << "-format" << "png"
|
437
|
+
convert << "-resize" << "#{size}"
|
438
|
+
convert << png_file
|
439
|
+
convert << "#{USPSFlags::Config.flags_dir}/PNG/#{flag}.#{size_key}.png"
|
440
|
+
end
|
441
|
+
USPSFlags::Helpers.log sizes[size_key]
|
442
|
+
|
443
|
+
if ::File.exists?(png_ins_file)
|
444
|
+
if ::File.exists?("#{USPSFlags::Config.flags_dir}/PNG/insignia/#{flag}.#{size}.png")
|
445
|
+
USPSFlags::Helpers.log "."
|
446
|
+
elsif MiniMagick::Image.open(png_ins_file)[:width] > size
|
447
|
+
USPSFlags::Helpers.log "…\b"
|
448
|
+
MiniMagick::Tool::Convert.new do |convert|
|
449
|
+
convert << "-background" << "none"
|
450
|
+
convert << "-format" << "png"
|
451
|
+
convert << "-resize" << "#{size}"
|
452
|
+
convert << png_ins_file
|
453
|
+
convert << "#{USPSFlags::Config.flags_dir}/PNG/insignia/#{flag}.#{size_key}.png"
|
454
|
+
end
|
455
|
+
USPSFlags::Helpers.log "i"
|
456
|
+
else
|
457
|
+
USPSFlags::Helpers.log "+"
|
458
|
+
end
|
459
|
+
else
|
460
|
+
USPSFlags::Helpers.log "-"
|
461
|
+
end
|
462
|
+
end
|
463
|
+
end
|
464
|
+
rescue => e
|
465
|
+
USPSFlags::Helpers.log "x -> #{e.message}"
|
466
|
+
end
|
467
|
+
end
|
555
468
|
end
|
data/lib/usps_flags/helpers.rb
CHANGED
@@ -13,34 +13,49 @@ class USPSFlags::Helpers
|
|
13
13
|
# @option type [Symbol] :us US flag
|
14
14
|
# @return [Array] Valid options for flag generation (based on the provided type).
|
15
15
|
def self.valid_flags(type = :all)
|
16
|
-
|
16
|
+
squadron_past = %w[
|
17
17
|
PLTC
|
18
18
|
PC
|
19
|
+
]
|
20
|
+
|
21
|
+
squadron_elected = %w[
|
22
|
+
1LT
|
23
|
+
LTC
|
24
|
+
CDR
|
25
|
+
]
|
26
|
+
|
27
|
+
squadron_swallowtail = %w[
|
19
28
|
PORTCAP
|
20
29
|
FLEETCAP
|
21
30
|
LT
|
22
31
|
FLT
|
23
|
-
1LT
|
24
|
-
LTC
|
25
|
-
CDR
|
26
32
|
]
|
27
33
|
|
28
|
-
|
34
|
+
district_past = %w[
|
29
35
|
PDLTC
|
30
36
|
PDC
|
31
|
-
|
32
|
-
|
33
|
-
|
37
|
+
]
|
38
|
+
|
39
|
+
district_elected = %w[
|
34
40
|
D1LT
|
35
41
|
DLTC
|
36
42
|
DC
|
37
43
|
]
|
38
44
|
|
39
|
-
|
45
|
+
district_swallowtail = %w[
|
46
|
+
DLT
|
47
|
+
DAIDE
|
48
|
+
DFLT
|
49
|
+
]
|
50
|
+
|
51
|
+
national_past = %w[
|
40
52
|
PSTFC
|
41
53
|
PRC
|
42
54
|
PVC
|
43
55
|
PCC
|
56
|
+
]
|
57
|
+
|
58
|
+
national_elected = %w[
|
44
59
|
NAIDE
|
45
60
|
NFLT
|
46
61
|
STFC
|
@@ -49,17 +64,6 @@ class USPSFlags::Helpers
|
|
49
64
|
CC
|
50
65
|
]
|
51
66
|
|
52
|
-
past = %w[
|
53
|
-
PLTC
|
54
|
-
PC
|
55
|
-
PDLTC
|
56
|
-
PDC
|
57
|
-
PSTFC
|
58
|
-
PRC
|
59
|
-
PVC
|
60
|
-
PCC
|
61
|
-
]
|
62
|
-
|
63
67
|
special = %w[
|
64
68
|
CRUISE
|
65
69
|
OIC
|
@@ -71,6 +75,11 @@ class USPSFlags::Helpers
|
|
71
75
|
US
|
72
76
|
]
|
73
77
|
|
78
|
+
squadron = squadron_past + squadron_elected + squadron_swallowtail
|
79
|
+
district = district_past + district_elected + district_swallowtail
|
80
|
+
national = national_past + national_elected
|
81
|
+
past = squadron_past + district_past + national_past
|
82
|
+
|
74
83
|
case type
|
75
84
|
when :all
|
76
85
|
squadron + district + national + special + us
|
@@ -88,6 +97,18 @@ class USPSFlags::Helpers
|
|
88
97
|
special
|
89
98
|
when :us
|
90
99
|
us
|
100
|
+
when :past
|
101
|
+
past
|
102
|
+
when :swallowtail
|
103
|
+
past + squadron_swallowtail + district_swallowtail
|
104
|
+
when :bridge
|
105
|
+
squadron_elected.last(2) + squadron_past.last(2) +
|
106
|
+
district_elected.last(2) + district_past.last(2) +
|
107
|
+
national_elected.last(2) + national_past.last(2)
|
108
|
+
when :command
|
109
|
+
[squadron_elected.last, squadron_past.last,
|
110
|
+
district_elected.last, district_past.last,
|
111
|
+
national_elected.last, national_past.last]
|
91
112
|
end
|
92
113
|
end
|
93
114
|
|
data/spec/spec_helper.rb
CHANGED
@@ -3,14 +3,7 @@ Coveralls.wear!
|
|
3
3
|
require 'bundler/setup'
|
4
4
|
Bundler.setup
|
5
5
|
|
6
|
-
require 'usps_flags'
|
7
|
-
# require 'fileutils'
|
8
|
-
# require 'zip'
|
9
|
-
# require 'mini_magick'
|
10
|
-
require 'usps_flags/config'
|
11
|
-
require 'usps_flags/helpers'
|
12
|
-
require 'usps_flags/core' # Contains direct SVG matching
|
13
|
-
require 'usps_flags/generate'
|
6
|
+
require 'usps_flags'
|
14
7
|
|
15
8
|
RSpec.configure do |config|
|
16
9
|
# some (optional) config here
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe USPSFlags::Generate do
|
4
|
-
it "should
|
4
|
+
it "should generate a flag with the correct size" do
|
5
5
|
expect(USPSFlags::Generate.get("LtC", outfile: "")).to include("width=\"1024pt\" height=\"682pt\" viewBox=\"0 0 3072 2048\"")
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should generate a flag with the correct field" do
|
6
9
|
expect(USPSFlags::Generate.get("LtC", outfile: "")).to include(
|
7
10
|
<<~SVG
|
8
11
|
<path d="M 0 0
|
@@ -13,7 +16,13 @@ describe USPSFlags::Generate do
|
|
13
16
|
" fill="#BF0D3E" />
|
14
17
|
SVG
|
15
18
|
)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should generate a flag with the correct starting position" do
|
16
22
|
expect(USPSFlags::Generate.get("LtC", outfile: "")).to include("<path d=\"M 1536 512")
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should generate a flag with the correct trident transformations" do
|
17
26
|
expect(USPSFlags::Generate.get("LtC", outfile: "")).to include("<g transform=\"translate(-512)\">")
|
18
27
|
expect(USPSFlags::Generate.get("LtC", outfile: "")).to include("<g transform=\"translate(512)\">")
|
19
28
|
end
|
@@ -7,7 +7,7 @@ describe USPSFlags::Helpers do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should return all officer flags but nothing else when given type :officer" do
|
10
|
-
expect(USPSFlags::Helpers.valid_flags(:officer)).to eql(%w[PLTC PC PORTCAP FLEETCAP LT FLT 1LT LTC CDR PDLTC PDC DLT DAIDE DFLT D1LT DLTC DC PSTFC PRC PVC PCC NAIDE NFLT STFC RC VC CC])
|
10
|
+
expect(USPSFlags::Helpers.valid_flags(:officer).sort).to eql(%w[PLTC PC PORTCAP FLEETCAP LT FLT 1LT LTC CDR PDLTC PDC DLT DAIDE DFLT D1LT DLTC DC PSTFC PRC PVC PCC NAIDE NFLT STFC RC VC CC].sort)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
data/usps_flags.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'usps_flags'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.25'
|
4
4
|
s.date = '2017-10-31'
|
5
5
|
s.summary = 'Flag generator for United States Power Squadrons'
|
6
6
|
s.description = 'A flag image (PNG, SVG) generator for United States Power Squadrons.'
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|