usps_flags 0.3.1 → 0.3.2
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 +3 -1
- data.tar.gz.sig +1 -1
- data/Gemfile.lock +1 -1
- data/lib/usps_flags/core/field.rb +53 -40
- data/lib/usps_flags/generate.rb +2 -11
- data/lib/usps_flags/generate/flag.rb +35 -28
- data/lib/usps_flags/helpers.rb +60 -66
- 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: 942e55ca17285fbdb9c4fe12e43228591bd8a8ab
|
4
|
+
data.tar.gz: 3bdfc5258b528ae4b69d759e18cadf42539cc18f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d55585eb11f710f9486a784f2867b31d1a78669baccf9f2c58cfbfbdbe5994c767c830b7ea03d7115e479c4fdd923193a6550df60a51bf0e3d2e09cd6ecb5c5c
|
7
|
+
data.tar.gz: ef662fc64315e1bb319cdbc8ef8a4745a222849f04f01d23a854fff098c042fefdf950c2f8bf17259b796b8265e9963c732427aa81d92e04ceeb2f1f7ae26a94
|
checksums.yaml.gz.sig
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
|
1
|
+
\����/�?���e��_^uU9�v��ʭ��UI��$5�V�p2>�;�w�*?��8��w/�21S�^�7��#�ni�[�֎���R�$H+�qb��vGa�}R$?`�.��
|
2
|
+
�s��A��"F���xg��%Mw�?L�E.+m�p�"��R����d���
|
3
|
+
��a]o�?� ,��'<�� ��?�B�px�űv=@#&�3�T�fs�{@{�A������n���鳰#2 ��S��x�~�c1����̎O�
|
data.tar.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
o_&{ :U�����]�D�ʵAYm|!�Vj��'�J����؉���*6*NCٖ�2��$=����Ė�MG����J�����٫�w���Loĵ{Pl���|�0�wx6W�����S�%���@�V|���#8�*>F�Tߩ����t���X�=&��^��I�d�@�2�FC���u<8�".���>�Ax嫊�]���Kb�q^�B�H�5��[r�z��~�V�8��-?j_�Y�S1��8K�v��^�
|
data/Gemfile.lock
CHANGED
@@ -31,48 +31,61 @@ class USPSFlags::Core::Field
|
|
31
31
|
def svg
|
32
32
|
case @style
|
33
33
|
when :regular
|
34
|
-
|
35
|
-
<path d="M 0 0
|
36
|
-
l #{@fly} 0
|
37
|
-
l 0 #{@hoist}
|
38
|
-
l -#{@fly} 0
|
39
|
-
l 0 -#{@hoist}
|
40
|
-
" fill="#{@color_code}" #{@border_svg}/>
|
41
|
-
SVG
|
34
|
+
regular_field
|
42
35
|
when :swallowtail
|
43
|
-
|
44
|
-
<path d="M 0 0
|
45
|
-
l #{@fly} #{@hoist/6}
|
46
|
-
l -#{@fly/5} #{@hoist/3}
|
47
|
-
l #{@fly/5} #{@hoist/3}
|
48
|
-
l -#{@fly} #{@hoist/6}
|
49
|
-
" fill="#FFFFFF" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
|
50
|
-
SVG
|
36
|
+
swallowtail_field
|
51
37
|
when :past
|
52
|
-
|
53
|
-
<path d="M 0 0
|
54
|
-
l #{@fly/2} #{@hoist*1/12}
|
55
|
-
l 0 #{@hoist*10/12}
|
56
|
-
l -#{@fly/2} #{@hoist*1/12}
|
57
|
-
" fill="#{@color_code}" />
|
58
|
-
<path d="M #{@fly/2} #{@hoist*1/12}
|
59
|
-
l #{@fly/4} #{@hoist*1/24}
|
60
|
-
l 0 #{@hoist*9/12}
|
61
|
-
l -#{@fly/4} #{@hoist*1/24}
|
62
|
-
" fill="#{@past_mid_color}" />
|
63
|
-
<path d="M #{@fly*3/4} #{@hoist*3/24}
|
64
|
-
l #{@fly/4} #{@hoist*1/24}
|
65
|
-
l -#{@fly/5} #{@hoist/3}
|
66
|
-
l #{@fly/5} #{@hoist/3}
|
67
|
-
l -#{@fly/4} #{@hoist*1/24}
|
68
|
-
" fill="#{@past_tail_color}" />
|
69
|
-
<path d="M 0 0
|
70
|
-
l #{@fly} #{@hoist/6}
|
71
|
-
l -#{@fly/5} #{@hoist/3}
|
72
|
-
l #{@fly/5} #{@hoist/3}
|
73
|
-
l -#{@fly} #{@hoist/6}
|
74
|
-
" fill="none" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
|
75
|
-
SVG
|
38
|
+
past_field
|
76
39
|
end
|
77
40
|
end
|
41
|
+
|
42
|
+
private
|
43
|
+
def regular_field
|
44
|
+
<<~SVG
|
45
|
+
<path d="M 0 0
|
46
|
+
l #{@fly} 0
|
47
|
+
l 0 #{@hoist}
|
48
|
+
l -#{@fly} 0
|
49
|
+
l 0 -#{@hoist}
|
50
|
+
" fill="#{@color_code}" #{@border_svg}/>
|
51
|
+
SVG
|
52
|
+
end
|
53
|
+
|
54
|
+
def swallowtail_field
|
55
|
+
<<~SVG
|
56
|
+
<path d="M 0 0
|
57
|
+
l #{@fly} #{@hoist/6}
|
58
|
+
l -#{@fly/5} #{@hoist/3}
|
59
|
+
l #{@fly/5} #{@hoist/3}
|
60
|
+
l -#{@fly} #{@hoist/6}
|
61
|
+
" fill="#FFFFFF" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
|
62
|
+
SVG
|
63
|
+
end
|
64
|
+
|
65
|
+
def past_field
|
66
|
+
<<~SVG
|
67
|
+
<path d="M 0 0
|
68
|
+
l #{@fly/2} #{@hoist*1/12}
|
69
|
+
l 0 #{@hoist*10/12}
|
70
|
+
l -#{@fly/2} #{@hoist*1/12}
|
71
|
+
" fill="#{@color_code}" />
|
72
|
+
<path d="M #{@fly/2} #{@hoist*1/12}
|
73
|
+
l #{@fly/4} #{@hoist*1/24}
|
74
|
+
l 0 #{@hoist*9/12}
|
75
|
+
l -#{@fly/4} #{@hoist*1/24}
|
76
|
+
" fill="#{@past_mid_color}" />
|
77
|
+
<path d="M #{@fly*3/4} #{@hoist*3/24}
|
78
|
+
l #{@fly/4} #{@hoist*1/24}
|
79
|
+
l -#{@fly/5} #{@hoist/3}
|
80
|
+
l #{@fly/5} #{@hoist/3}
|
81
|
+
l -#{@fly/4} #{@hoist*1/24}
|
82
|
+
" fill="#{@past_tail_color}" />
|
83
|
+
<path d="M 0 0
|
84
|
+
l #{@fly} #{@hoist/6}
|
85
|
+
l -#{@fly/5} #{@hoist/3}
|
86
|
+
l #{@fly/5} #{@hoist/3}
|
87
|
+
l -#{@fly} #{@hoist/6}
|
88
|
+
" fill="none" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
|
89
|
+
SVG
|
90
|
+
end
|
78
91
|
end
|
data/lib/usps_flags/generate.rb
CHANGED
@@ -88,17 +88,8 @@ class USPSFlags::Generate
|
|
88
88
|
# @param [Boolean] png Generate zip archive of PNG images.
|
89
89
|
def zips(svg: true, png: true)
|
90
90
|
raise USPSFlags::Errors::ZipGenerationError, "At least one argument switch must be true out of [svg, png]." unless svg || png
|
91
|
-
|
92
|
-
|
93
|
-
rescue Errno::EACCES => e
|
94
|
-
raise USPSFlags::Errors::ZipGenerationError, type: :svg, cause: e
|
95
|
-
end
|
96
|
-
|
97
|
-
begin
|
98
|
-
generate_zip("png") if png
|
99
|
-
rescue Errno::EACCES => e
|
100
|
-
raise USPSFlags::Errors::ZipGenerationError, type: :png, cause: e
|
101
|
-
end
|
91
|
+
generate_zip("svg") if svg
|
92
|
+
generate_zip("png") if png
|
102
93
|
rescue => e
|
103
94
|
raise e if e.is_a?(USPSFlags::Errors::ZipGenerationError)
|
104
95
|
raise USPSFlags::Errors::ZipGenerationError, cause: e
|
@@ -6,37 +6,20 @@ class USPSFlags::Generate::Flag
|
|
6
6
|
class << self
|
7
7
|
def officer(rank: nil, width: USPSFlags::Config::BASE_FLY, outfile: nil, scale: nil, field: true)
|
8
8
|
raise "Error: No rank specified." if rank.nil?
|
9
|
-
rank = rank.to_s.upcase
|
9
|
+
@rank = rank.to_s.upcase
|
10
|
+
@field = field
|
10
11
|
|
11
12
|
svg = ""
|
12
|
-
svg << USPSFlags::Core.headers(scale: scale, title: rank)
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
flag_details = USPSFlags::Helpers.flag_details(rank)
|
18
|
-
trident_color = field ? :white : flag_details[:color]
|
19
|
-
|
20
|
-
svg << USPSFlags::Core.field(style: flag_details[:style], color: flag_details[:color]) if field
|
21
|
-
svg << "<g transform=\"translate(-150, 400)\"><g transform=\"scale(0.58333)\">" if flag_details[:style] == :past
|
22
|
-
|
23
|
-
if flag_details[:type] == :n && flag_details[:count] == 3
|
24
|
-
svg << USPSFlags::Core::Tridents.cc(flag_details[:type], trident_color: trident_color)
|
25
|
-
elsif flag_details[:type] == :n && flag_details[:count] == 2
|
26
|
-
svg << USPSFlags::Core::Tridents.vc(flag_details[:type], trident_color: trident_color)
|
27
|
-
elsif [:s, :d].include?(flag_details[:type]) && flag_details[:count] == 3
|
28
|
-
svg << USPSFlags::Core::Tridents.three(flag_details[:type], trident_color: trident_color, field_color: flag_details[:color])
|
29
|
-
elsif [:s, :d].include?(flag_details[:type]) && flag_details[:count] == 2
|
30
|
-
svg << USPSFlags::Core::Tridents.two(flag_details[:type], trident_color: trident_color, field_color: flag_details[:color])
|
31
|
-
elsif [:s, :d, :stf, :n].include?(flag_details[:type]) && %w[LT DLT].include?(rank)
|
32
|
-
svg << USPSFlags::Core::Tridents.offset(flag_details[:type], field_color: flag_details[:color], field: field)
|
33
|
-
elsif [:a, :f, :fc, :pc].include?(flag_details[:type])
|
34
|
-
svg << special(flag_details[:type], level: flag_details[:level], field: field)
|
35
|
-
else
|
36
|
-
svg << USPSFlags::Core.trident(flag_details[:type], field_color: flag_details[:color])
|
37
|
-
end
|
13
|
+
svg << USPSFlags::Core.headers(scale: scale, title: @rank)
|
14
|
+
|
15
|
+
modify_rank_for_insignia
|
16
|
+
@flag_details = USPSFlags::Helpers.flag_details(@rank)
|
17
|
+
@trident_color = @field ? :white : @flag_details[:color]
|
38
18
|
|
39
|
-
svg <<
|
19
|
+
svg << USPSFlags::Core.field(style: @flag_details[:style], color: @flag_details[:color]) if @field
|
20
|
+
svg << "<g transform=\"translate(-150, 400)\"><g transform=\"scale(0.58333)\">" if @flag_details[:style] == :past
|
21
|
+
svg << get_officer_flag
|
22
|
+
svg << "</g></g>" if @flag_details[:style] == :past
|
40
23
|
svg << USPSFlags::Core.footer
|
41
24
|
|
42
25
|
USPSFlags::Helpers.output(svg, outfile: outfile)
|
@@ -111,5 +94,29 @@ class USPSFlags::Generate::Flag
|
|
111
94
|
|
112
95
|
USPSFlags::Helpers.output(svg, outfile: outfile)
|
113
96
|
end
|
97
|
+
|
98
|
+
private
|
99
|
+
def get_officer_flag
|
100
|
+
if @flag_details[:type] == :n && @flag_details[:count] == 3
|
101
|
+
USPSFlags::Core::Tridents.cc(@flag_details[:type], trident_color: @trident_color)
|
102
|
+
elsif @flag_details[:type] == :n && @flag_details[:count] == 2
|
103
|
+
USPSFlags::Core::Tridents.vc(@flag_details[:type], trident_color: @trident_color)
|
104
|
+
elsif [:s, :d].include?(@flag_details[:type]) && @flag_details[:count] == 3
|
105
|
+
USPSFlags::Core::Tridents.three(@flag_details[:type], trident_color: @trident_color, field_color: @flag_details[:color])
|
106
|
+
elsif [:s, :d].include?(@flag_details[:type]) && @flag_details[:count] == 2
|
107
|
+
USPSFlags::Core::Tridents.two(@flag_details[:type], trident_color: @trident_color, field_color: @flag_details[:color])
|
108
|
+
elsif [:s, :d, :stf, :n].include?(@flag_details[:type]) && %w[LT DLT].include?(@rank)
|
109
|
+
USPSFlags::Core::Tridents.offset(@flag_details[:type], field_color: @flag_details[:color], field: @field)
|
110
|
+
elsif [:a, :f, :fc, :pc].include?(@flag_details[:type])
|
111
|
+
special(@flag_details[:type], level: @flag_details[:level], field: @field)
|
112
|
+
else
|
113
|
+
USPSFlags::Core.trident(@flag_details[:type], field_color: @flag_details[:color])
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def modify_rank_for_insignia
|
118
|
+
@rank.slice!(0) if !@field && USPSFlags::Helpers.valid_flags(:past).include?(@rank)
|
119
|
+
@rank = "CDR" if @rank == "C"
|
120
|
+
end
|
114
121
|
end
|
115
122
|
end
|
data/lib/usps_flags/helpers.rb
CHANGED
@@ -14,52 +14,8 @@ class USPSFlags::Helpers
|
|
14
14
|
# @option type [Symbol] :us US flag
|
15
15
|
# @return [Array] Valid options for flag generation (based on the provided type).
|
16
16
|
def valid_flags(type = :all)
|
17
|
-
|
18
|
-
|
19
|
-
squadron_swallowtail = %w[PORTCAP FLEETCAP LT FLT]
|
20
|
-
district_past = %w[PDLTC PDC]
|
21
|
-
district_elected = %w[D1LT DLTC DC]
|
22
|
-
district_swallowtail = %w[DLT DAIDE DFLT]
|
23
|
-
national_past = %w[PSTFC PRC PVC PCC]
|
24
|
-
national_elected = %w[NAIDE NFLT STFC RC VC CC]
|
25
|
-
special = %w[CRUISE OIC ENSIGN WHEEL]
|
26
|
-
us = %w[US]
|
27
|
-
|
28
|
-
squadron = squadron_past + squadron_elected + squadron_swallowtail
|
29
|
-
district = district_past + district_elected + district_swallowtail
|
30
|
-
national = national_past + national_elected
|
31
|
-
past = squadron_past + district_past + national_past
|
32
|
-
|
33
|
-
case type
|
34
|
-
when :all
|
35
|
-
squadron + district + national + special + us
|
36
|
-
when :officer
|
37
|
-
squadron + district + national
|
38
|
-
when :insignia
|
39
|
-
squadron + district + national - past
|
40
|
-
when :squadron
|
41
|
-
squadron
|
42
|
-
when :district
|
43
|
-
district
|
44
|
-
when :national
|
45
|
-
national
|
46
|
-
when :special
|
47
|
-
special
|
48
|
-
when :us
|
49
|
-
us
|
50
|
-
when :past
|
51
|
-
past
|
52
|
-
when :swallowtail
|
53
|
-
past + squadron_swallowtail + district_swallowtail
|
54
|
-
when :bridge
|
55
|
-
squadron_elected.last(2) + squadron_past.last(2) +
|
56
|
-
district_elected.last(2) + district_past.last(2) +
|
57
|
-
national_elected.last(2) + national_past.last(2)
|
58
|
-
when :command
|
59
|
-
[squadron_elected.last, squadron_past.last,
|
60
|
-
district_elected.last, district_past.last,
|
61
|
-
national_elected.last, national_past.last]
|
62
|
-
end
|
17
|
+
load_valid_flags
|
18
|
+
valid_flags_for(type)
|
63
19
|
end
|
64
20
|
|
65
21
|
# Gets the maximum length among valid flags.
|
@@ -165,6 +121,50 @@ class USPSFlags::Helpers
|
|
165
121
|
end
|
166
122
|
|
167
123
|
private
|
124
|
+
def load_valid_flags
|
125
|
+
@squadron_past = %w[PLTC PC]
|
126
|
+
@squadron_elected = %w[1LT LTC CDR]
|
127
|
+
@squadron_swallowtail = %w[PORTCAP FLEETCAP LT FLT]
|
128
|
+
@district_past = %w[PDLTC PDC]
|
129
|
+
@district_elected = %w[D1LT DLTC DC]
|
130
|
+
@district_swallowtail = %w[DLT DAIDE DFLT]
|
131
|
+
@national_past = %w[PSTFC PRC PVC PCC]
|
132
|
+
@national_elected = %w[NAIDE NFLT STFC RC VC CC]
|
133
|
+
@special = %w[CRUISE OIC ENSIGN WHEEL]
|
134
|
+
@us = %w[US]
|
135
|
+
|
136
|
+
@past = @squadron_past + @district_past + @national_past
|
137
|
+
@squadron = @squadron_past + @squadron_elected + @squadron_swallowtail
|
138
|
+
@district = @district_past + @district_elected + @district_swallowtail
|
139
|
+
@national = @national_past + @national_elected
|
140
|
+
@officer = @squadron + @district + @national
|
141
|
+
end
|
142
|
+
|
143
|
+
def valid_flags_for(type)
|
144
|
+
{
|
145
|
+
special: @special,
|
146
|
+
us: @us,
|
147
|
+
|
148
|
+
squadron: @squadron,
|
149
|
+
district: @district,
|
150
|
+
national: @national,
|
151
|
+
past: @past,
|
152
|
+
|
153
|
+
all: @officer + @special + @us,
|
154
|
+
officer: @officer,
|
155
|
+
insignia: @officer - @past,
|
156
|
+
swallowtail: @past + @squadron_swallowtail + @district_swallowtail,
|
157
|
+
|
158
|
+
bridge: @squadron_elected.last(2) + @squadron_past.last(2) +
|
159
|
+
@district_elected.last(2) + @district_past.last(2) +
|
160
|
+
@national_elected.last(2) + @national_past.last(2),
|
161
|
+
|
162
|
+
command: [@squadron_elected.last, @squadron_past.last,
|
163
|
+
@district_elected.last, @district_past.last,
|
164
|
+
@national_elected.last, @national_past.last]
|
165
|
+
}[type]
|
166
|
+
end
|
167
|
+
|
168
168
|
def flag_style(rank)
|
169
169
|
if valid_flags(:past).include?(rank)
|
170
170
|
:past
|
@@ -188,18 +188,12 @@ class USPSFlags::Helpers
|
|
188
188
|
end
|
189
189
|
|
190
190
|
def flag_level(rank)
|
191
|
-
if rank
|
192
|
-
:d
|
193
|
-
elsif rank == "NAIDE"
|
191
|
+
if rank.match /N.*/
|
194
192
|
:n
|
193
|
+
elsif rank.match /D.*/
|
194
|
+
:d
|
195
195
|
elsif rank == "FLT"
|
196
196
|
:s
|
197
|
-
elsif rank == "DFLT"
|
198
|
-
:d
|
199
|
-
elsif rank == "NFLT"
|
200
|
-
:n
|
201
|
-
else
|
202
|
-
nil
|
203
197
|
end
|
204
198
|
end
|
205
199
|
|
@@ -218,19 +212,19 @@ class USPSFlags::Helpers
|
|
218
212
|
:pc
|
219
213
|
elsif rank == "FLEETCAP"
|
220
214
|
:fc
|
221
|
-
elsif rank == "DAIDE"
|
222
|
-
:a
|
223
|
-
elsif rank == "NAIDE"
|
224
|
-
:a
|
225
|
-
elsif rank == "FLT"
|
226
|
-
:f
|
227
|
-
elsif rank == "DFLT"
|
228
|
-
:f
|
229
|
-
elsif rank == "NFLT"
|
230
|
-
:f
|
231
215
|
elsif rank == "STFC"
|
232
216
|
:stf
|
233
|
-
elsif
|
217
|
+
elsif rank.match /.AIDE/
|
218
|
+
:a
|
219
|
+
elsif rank.match /.?FLT/
|
220
|
+
:f
|
221
|
+
else
|
222
|
+
get_line_flag_level(rank)
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
def get_line_flag_level(rank)
|
227
|
+
if valid_flags(:squadron).include?(rank)
|
234
228
|
:s
|
235
229
|
elsif valid_flags(:district).include?(rank)
|
236
230
|
:d
|
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.3.
|
3
|
+
s.version = '0.3.2'
|
4
4
|
s.date = '2017-11-06'
|
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
|