usps_flags 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +3 -2
- data/README.md +1 -13
- data/lib/usps_flags/core/trident_spec.rb +39 -16
- data/lib/usps_flags/generate.rb +85 -64
- data/lib/usps_flags/helpers/spec_arrows.rb +28 -38
- data/usps_flags.gemspec +2 -2
- metadata +2 -2
- 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: 230cbb0c6890872f99ec67e5a5db72eb528b84bc
|
4
|
+
data.tar.gz: 54251932a8c574ebfa8efea790086eeec8cc5459
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57d576e35c377d8527988d9fd51628712d6a3eaf8db4c9c137f4e657e61fb174f11c1868d407ab2dffce080ccdde5631e586e1f71e6b0fc610984ee8cf42ebaa
|
7
|
+
data.tar.gz: 80160eaa9c095e3a3af76d0c27550183b081c9599140c43b0a8c378e99359d96f65c1f6c32554238cbdd60e09908d5c57fe5635c81a0da6938c752fc0c54ff3d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
��
|
2
|
-
|
1
|
+
j�7x��9Qb�?>q�����ڜ/4�����.��'n�
|
2
|
+
g
|
3
|
+
��e+Dc�챢���
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://img.shields.io/gem/v/usps_flags.svg)](https://rubygems.org/gems/usps_flags)
|
4
4
|
[![Build Status](https://travis-ci.org/jfiander/usps-flags.svg)](https://travis-ci.org/jfiander/usps-flags)
|
5
|
-
[![Coverage
|
5
|
+
[![Test Coverage](https://api.codeclimate.com/v1/badges/760b824f0edac3316a11/test_coverage)](https://codeclimate.com/github/jfiander/usps-flags/test_coverage)
|
6
6
|
[![Maintainability](https://api.codeclimate.com/v1/badges/760b824f0edac3316a11/maintainability)](https://codeclimate.com/github/jfiander/usps-flags/maintainability)
|
7
7
|
|
8
8
|
This gem allows you to generate precise SVG and PNG flag images based on
|
@@ -26,16 +26,6 @@ USPSFlags::Config.new do |config|
|
|
26
26
|
end
|
27
27
|
```
|
28
28
|
|
29
|
-
### Other
|
30
|
-
|
31
|
-
Run the following commands:
|
32
|
-
|
33
|
-
```ruby
|
34
|
-
gem install usps_flags
|
35
|
-
require 'usps_flags'
|
36
|
-
USPSFlags::Config.flags_dir "path/to/flags/dir"
|
37
|
-
```
|
38
|
-
|
39
29
|
## Available flags
|
40
30
|
|
41
31
|
- US Ensign
|
@@ -134,8 +124,6 @@ flag.svg #=> Generates SVG file at "/path/to/svg/output.svg"
|
|
134
124
|
flag.png #=> Generates PNG file at "/path/to/png/output.png"
|
135
125
|
```
|
136
126
|
|
137
|
-
- Calling any DSL method without argument, or with `nil` as argument will return
|
138
|
-
the current value.
|
139
127
|
- You can explicitly set `svg_file` to `""` to suppress printing the SVG content
|
140
128
|
to console/log.
|
141
129
|
- Calling `.png` requires `png_file` to be set.
|
@@ -89,8 +89,7 @@ class USPSFlags::Core::TridentSpec
|
|
89
89
|
<<~SVG
|
90
90
|
<!-- Short Trident -->
|
91
91
|
<g transform="translate(-#{USPSFlags::Config::BASE_FLY*14/80},#{USPSFlags::Config::BASE_HOIST*9/32})"><g transform="scale(0.7)">
|
92
|
-
|
93
|
-
<text x="#{USPSFlags::Config::BASE_FLY/2}" y="#{USPSFlags::Config::BASE_HOIST*5/80}" font-family="sans-serif" font-size="#{USPSFlags::Config::BASE_HOIST/40}px" fill="#BF0D3E" text-anchor="middle">Squadron Officers</text>
|
92
|
+
#{trident_heading(:s)}
|
94
93
|
|
95
94
|
#{USPSFlags::Core::Trident.new(:s).svg}
|
96
95
|
|
@@ -132,8 +131,7 @@ class USPSFlags::Core::TridentSpec
|
|
132
131
|
<<~SVG
|
133
132
|
<!-- Delta Trident -->
|
134
133
|
<g transform="translate(#{USPSFlags::Config::BASE_FLY*5/80},#{USPSFlags::Config::BASE_HOIST*9/32})"><g transform="scale(0.7)">
|
135
|
-
|
136
|
-
<text x="#{USPSFlags::Config::BASE_FLY/2}" y="#{USPSFlags::Config::BASE_HOIST*5/80}" font-family="sans-serif" font-size="#{USPSFlags::Config::BASE_HOIST/40}px" fill="#BF0D3E" text-anchor="middle">District Officers</text>
|
134
|
+
#{trident_heading(:d)}
|
137
135
|
|
138
136
|
#{USPSFlags::Core::Trident.new(:d).svg}
|
139
137
|
|
@@ -155,21 +153,18 @@ class USPSFlags::Core::TridentSpec
|
|
155
153
|
<<~SVG
|
156
154
|
<!-- Circle Trident -->
|
157
155
|
<g transform="translate(#{USPSFlags::Config::BASE_FLY*23/80},#{USPSFlags::Config::BASE_HOIST*9/32})"><g transform="scale(0.7)">
|
158
|
-
|
159
|
-
<text x="#{USPSFlags::Config::BASE_FLY/2}" y="#{USPSFlags::Config::BASE_HOIST*5/80}" font-family="sans-serif" font-size="#{USPSFlags::Config::BASE_HOIST/40}px" fill="#BF0D3E" text-anchor="middle">Staff Commanders Only</text>
|
156
|
+
#{trident_heading(:stf)}
|
160
157
|
|
161
158
|
#{USPSFlags::Core::Trident.new(:stf).svg}
|
162
159
|
|
163
|
-
|
164
|
-
<rect x="#{box_left}" y="#{box_top}" width="#{box_right-box_left}" height="#{USPSFlags::Config::BASE_HOIST*3/4}" stroke="#666666" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" stroke-dasharray="15, 15" fill="none" />
|
160
|
+
#{long_trident_boundary_box(box_top, box_left, box_right)}
|
165
161
|
|
166
162
|
<!-- Right -->
|
167
163
|
#{USPSFlags::Helpers::SpecArrows.vertical(box_right+@trident_config[:bar_width], box_top+@trident_config[:crossbar_from_top]+@trident_config[:bar_width]*2, box_top+@trident_config[:crossbar_from_top]+@trident_config[:width], @trident_config[:center_point], @trident_config[:center_point], fly: @fly, unit: @unit, font_size: @label_font_size)} <!-- Inner circle diameter -->
|
168
164
|
#{USPSFlags::Helpers::SpecArrows.vertical(box_right+@trident_config[:bar_width], box_top+@trident_config[:crossbar_from_top]+@trident_config[:width], box_top+@trident_config[:crossbar_from_top]+@trident_config[:bar_width]+@trident_config[:width], nil, @trident_config[:center_point]+@trident_config[:bar_width]/2, fly: @fly, unit: @unit, font_size: @label_font_size)} <!-- Outer circle diameter -->
|
169
165
|
#{USPSFlags::Helpers::SpecArrows.vertical(box_right+@trident_config[:bar_width], box_top+@trident_config[:crossbar_from_top]+@trident_config[:bar_width]+@trident_config[:width], box_bottom, nil, box_right, fly: @fly, unit: @unit, font_size: @label_font_size)} <!-- Circle to bottom -->
|
170
166
|
|
171
|
-
|
172
|
-
#{USPSFlags::Helpers::SpecArrows.vertical(box_left-@trident_config[:bar_width]*1.5, box_top, box_bottom, box_left, box_left, fly: @fly, unit: @unit, label_offset: -USPSFlags::Config::BASE_FLY/30, label_offset_y: -USPSFlags::Config::BASE_FLY/4.5, font_size: @label_font_size, label_align: "middle")} <!-- Boundary height -->
|
167
|
+
#{long_trident_left_arrow(box_top, box_bottom, box_left, box_right)}
|
173
168
|
</g></g>
|
174
169
|
SVG
|
175
170
|
end
|
@@ -178,20 +173,48 @@ class USPSFlags::Core::TridentSpec
|
|
178
173
|
<<~SVG
|
179
174
|
<!-- Long Trident -->
|
180
175
|
<g transform="translate(#{USPSFlags::Config::BASE_FLY*40/80},#{USPSFlags::Config::BASE_HOIST*9/32})"><g transform="scale(0.7)">
|
181
|
-
|
182
|
-
<text x="#{USPSFlags::Config::BASE_FLY/2}" y="#{USPSFlags::Config::BASE_HOIST*5/80}" font-family="sans-serif" font-size="#{USPSFlags::Config::BASE_HOIST/40}px" fill="#BF0D3E" text-anchor="middle">National Officers</text>
|
176
|
+
#{trident_heading(:n)}
|
183
177
|
|
184
178
|
#{USPSFlags::Core::Trident.new(:n).svg}
|
185
179
|
|
186
|
-
|
187
|
-
<rect x="#{box_left}" y="#{box_top}" width="#{box_right-box_left}" height="#{USPSFlags::Config::BASE_HOIST*3/4}" stroke="#666666" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" stroke-dasharray="15, 15" fill="none" />
|
180
|
+
#{long_trident_boundary_box(box_top, box_left, box_right)}
|
188
181
|
|
189
182
|
<!-- Right -->
|
190
183
|
#{USPSFlags::Helpers::SpecArrows.vertical(box_right+@trident_config[:bar_width], box_top+@trident_config[:crossbar_from_top]+@trident_config[:bar_width]*3, box_bottom, @trident_config[:center_point]+@trident_config[:hash_width]/2, box_right, fly: @fly, unit: @unit, font_size: @label_font_size)} <!-- Hash to bottom -->
|
191
184
|
|
192
|
-
|
193
|
-
#{USPSFlags::Helpers::SpecArrows.vertical(box_left-@trident_config[:bar_width]*1.5, box_top, box_bottom, box_left, box_left, fly: @fly, unit: @unit, label_offset: -USPSFlags::Config::BASE_FLY/30, label_offset_y: -USPSFlags::Config::BASE_FLY/4.5, font_size: @label_font_size, label_align: "middle")} <!-- Boundary height -->
|
185
|
+
#{long_trident_left_arrow(box_top, box_bottom, box_left, box_right)}
|
194
186
|
</g></g>
|
195
187
|
SVG
|
196
188
|
end
|
189
|
+
|
190
|
+
def trident_heading(type_sym)
|
191
|
+
type, description = case type_sym
|
192
|
+
when :s
|
193
|
+
["Short", "Squadron Officers"]
|
194
|
+
when :d
|
195
|
+
["Delta", "District Officers"]
|
196
|
+
when :stf
|
197
|
+
["Circle", "Staff Commanders Only"]
|
198
|
+
when :n
|
199
|
+
["Long", "National Officers"]
|
200
|
+
end
|
201
|
+
<<~SVG
|
202
|
+
<text x="#{USPSFlags::Config::BASE_FLY/2}" y="#{USPSFlags::Config::BASE_HOIST*1/40}" font-family="sans-serif" font-size="#{USPSFlags::Config::BASE_HOIST/30}px" font-weight="bold" fill="#BF0D3E" text-anchor="middle">#{type}</text>
|
203
|
+
<text x="#{USPSFlags::Config::BASE_FLY/2}" y="#{USPSFlags::Config::BASE_HOIST*5/80}" font-family="sans-serif" font-size="#{USPSFlags::Config::BASE_HOIST/40}px" fill="#BF0D3E" text-anchor="middle">#{description}</text>
|
204
|
+
SVG
|
205
|
+
end
|
206
|
+
|
207
|
+
def long_trident_boundary_box(box_top, box_left, box_right)
|
208
|
+
<<~SVG
|
209
|
+
<!-- Boundary box -->
|
210
|
+
<rect x="#{box_left}" y="#{box_top}" width="#{box_right-box_left}" height="#{USPSFlags::Config::BASE_HOIST*3/4}" stroke="#666666" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" stroke-dasharray="15, 15" fill="none" />
|
211
|
+
SVG
|
212
|
+
end
|
213
|
+
|
214
|
+
def long_trident_left_arrow(box_top, box_bottom, box_left, box_right)
|
215
|
+
<<~SVG
|
216
|
+
<!-- Left -->
|
217
|
+
#{USPSFlags::Helpers::SpecArrows.vertical(box_left-@trident_config[:bar_width]*1.5, box_top, box_bottom, box_left, box_left, fly: @fly, unit: @unit, label_offset: -USPSFlags::Config::BASE_FLY/30, label_offset_y: -USPSFlags::Config::BASE_FLY/4.5, font_size: @label_font_size, label_align: "middle")} <!-- Boundary height -->
|
218
|
+
SVG
|
219
|
+
end
|
197
220
|
end
|
data/lib/usps_flags/generate.rb
CHANGED
@@ -79,26 +79,16 @@ class USPSFlags::Generate
|
|
79
79
|
# @param [Boolean] svg Generate zip archive of SVG images.
|
80
80
|
# @param [Boolean] png Generate zip archive of PNG images.
|
81
81
|
def zips(svg: true, png: true)
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
else
|
93
|
-
z.add(f.split("/").last, f)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
puts "Generated #{format.upcase} Zip"
|
98
|
-
end
|
99
|
-
rescue Errno::EACCES => e
|
100
|
-
puts "Error: Failed to generate #{format.upcase} Zip -> #{e.message}"
|
101
|
-
end
|
82
|
+
begin
|
83
|
+
generate_zip("svg") if svg
|
84
|
+
rescue Errno::EACCES => e
|
85
|
+
puts "Error: Failed to generate SVG Zip -> #{e.message}"
|
86
|
+
end
|
87
|
+
|
88
|
+
begin
|
89
|
+
generate_zip("png") if png
|
90
|
+
rescue Errno::EACCES => e
|
91
|
+
puts "Error: Failed to generate SVG Zip -> #{e.message}"
|
102
92
|
end
|
103
93
|
end
|
104
94
|
|
@@ -134,6 +124,26 @@ class USPSFlags::Generate
|
|
134
124
|
[@svg_file, @png_file, @svg_ins_file, @png_ins_file]
|
135
125
|
end
|
136
126
|
|
127
|
+
def generate_zip(type)
|
128
|
+
raise "Error: Flags directory not found." unless ::Dir.exist?("#{USPSFlags::Config.flags_dir}/ZIP")
|
129
|
+
|
130
|
+
zip = "#{USPSFlags::Config.flags_dir}/ZIP/USPS_Flags.#{type}.zip"
|
131
|
+
::File.delete(zip) if ::File.exist?(zip)
|
132
|
+
|
133
|
+
::Zip::File.open(zip, Zip::File::CREATE) do |z|
|
134
|
+
::Dir.glob("#{USPSFlags::Config.flags_dir}/#{type.upcase}/**/*").each do |f|
|
135
|
+
add_to_zip(z, f)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
puts "Generated #{type.upcase} Zip"
|
139
|
+
end
|
140
|
+
|
141
|
+
def add_to_zip(z, f)
|
142
|
+
filename = f.split("/").last
|
143
|
+
filename = "insignia/#{filename}" if f.split("/").last(2).first == "insignia"
|
144
|
+
z.add(filename, f)
|
145
|
+
end
|
146
|
+
|
137
147
|
def generate_static_images_for(flag, svg: true, png: true)
|
138
148
|
start_time = Time.now
|
139
149
|
# USPSFlags::Helpers.log " | | _ _ _ _ _ | \r".rjust(USPSFlags::Helpers.max_flag_name_length+31, " ")
|
@@ -159,55 +169,66 @@ class USPSFlags::Generate
|
|
159
169
|
end
|
160
170
|
|
161
171
|
def generate_static_svg(flag)
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
USPSFlags::Helpers.log "I"
|
171
|
-
end
|
172
|
-
rescue => e
|
173
|
-
USPSFlags::Helpers.log "x -> #{e.message}"
|
172
|
+
USPSFlags::Helpers.log " "
|
173
|
+
svg flag, outfile: @svg_file, scale: 1
|
174
|
+
USPSFlags::Helpers.log "S"
|
175
|
+
if USPSFlags::Helpers.valid_flags(:past).include?(flag) || !USPSFlags::Helpers.valid_flags(:insignia).include?(flag)
|
176
|
+
USPSFlags::Helpers.log "-"
|
177
|
+
else
|
178
|
+
svg flag, field: false, outfile: @svg_ins_file, scale: 1
|
179
|
+
USPSFlags::Helpers.log "I"
|
174
180
|
end
|
181
|
+
rescue => e
|
182
|
+
USPSFlags::Helpers.log "x -> #{e.message}"
|
175
183
|
end
|
176
184
|
|
177
185
|
def generate_static_png(flag)
|
178
186
|
USPSFlags::Helpers.log " | "
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
187
|
+
generate_fullsize_png
|
188
|
+
generate_fullsize_png_insignia(flag)
|
189
|
+
generate_reduced_size_pngs
|
190
|
+
rescue => e
|
191
|
+
USPSFlags::Helpers.log "x -> #{e.message}"
|
192
|
+
end
|
193
|
+
|
194
|
+
def generate_fullsize_png
|
195
|
+
png(File.read(@svg_file), outfile: @png_file) unless ::File.exist?(@png_file)
|
196
|
+
USPSFlags::Helpers.log "F"
|
197
|
+
end
|
198
|
+
|
199
|
+
def generate_fullsize_png_insignia(flag)
|
200
|
+
if USPSFlags::Helpers.valid_flags(:past).include?(flag) || !USPSFlags::Helpers.valid_flags(:insignia).include?(flag)
|
201
|
+
USPSFlags::Helpers.log "-"
|
202
|
+
else
|
203
|
+
png(File.read(@svg_ins_file), outfile: @png_ins_file, trim: true) unless ::File.exist?(@png_ins_file)
|
204
|
+
USPSFlags::Helpers.log "I"
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
def generate_reduced_size_pngs
|
209
|
+
USPSFlags::Helpers.png_sizes.keys.each do |size|
|
210
|
+
USPSFlags::Helpers.log(".") and next if ::File.exist?("#{USPSFlags::Config.flags_dir}/PNG/#{flag}.#{size}.png")
|
211
|
+
size, size_key = USPSFlags::Helpers.size_and_key(size: size, flag: flag)
|
212
|
+
generate_smaller_png(flag, size, size_key)
|
213
|
+
generate_smaller_png_insignia(flag, size, size_key)
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
def generate_smaller_png(flag, size, size_key)
|
218
|
+
USPSFlags::Helpers.resize_png(@png_ins_file, flag: flag, size: size, size_key: size_key) if USPSFlags::Helpers.valid_flags(:insignia).include?(flag)
|
219
|
+
USPSFlags::Helpers.log USPSFlags::Helpers.png_sizes[size_key]
|
220
|
+
end
|
221
|
+
|
222
|
+
def generate_smaller_png_insignia(flag, size, size_key)
|
223
|
+
if ::File.exist?(@png_ins_file) && ::File.exist?("#{USPSFlags::Config.flags_dir}/PNG/insignia/#{flag}.#{size}.png")
|
224
|
+
USPSFlags::Helpers.log "."
|
225
|
+
elsif ::File.exist?(@png_ins_file) && MiniMagick::Image.open(@png_ins_file)[:width] > size && USPSFlags::Helpers.valid_flags(:insignia).include?(flag)
|
226
|
+
USPSFlags::Helpers.resize_png(@png_ins_file, flag: flag, size: size, size_key: size_key)
|
227
|
+
USPSFlags::Helpers.log "i"
|
228
|
+
elsif ::File.exist?(@png_ins_file)
|
229
|
+
USPSFlags::Helpers.log "+"
|
230
|
+
else
|
231
|
+
USPSFlags::Helpers.log "-"
|
211
232
|
end
|
212
233
|
end
|
213
234
|
end
|
@@ -9,26 +9,11 @@ class USPSFlags::Helpers::SpecArrows
|
|
9
9
|
# This is used USPSFlags::Core.trident_spec, and should never need to be called directly.
|
10
10
|
# @private
|
11
11
|
def vertical(x, top, bottom, pointer_top = nil, pointer_bottom = nil, label: nil, label_offset: (USPSFlags::Config::BASE_FLY/120), label_offset_y: 0, label_align: "left", color: "#CCCCCC", stroke_width: (USPSFlags::Config::BASE_FLY/600), stroke_dash: "10, 10", font_size: (USPSFlags::Config::BASE_FLY/60), arrow_size: (USPSFlags::Config::BASE_FLY/120), fly: USPSFlags::Config::BASE_FLY, unit: nil)
|
12
|
-
label = bottom
|
13
|
-
label = label.to_i if label - label.to_i == 0
|
14
|
-
label = Rational(label) * fly / USPSFlags::Config::BASE_FLY
|
15
|
-
if label == label.to_i
|
16
|
-
label = label.to_i
|
17
|
-
label_fraction = ""
|
18
|
-
else
|
19
|
-
label, label_fraction = label.to_simplified_a
|
20
|
-
end
|
12
|
+
label, label_fraction = get_labels(bottom, top, fly, label: label)
|
21
13
|
svg = ""
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
SVG
|
26
|
-
end
|
27
|
-
unless pointer_bottom.nil?
|
28
|
-
svg << <<~SVG
|
29
|
-
<line x1="#{x}" y1="#{bottom}" x2="#{pointer_bottom}" y2="#{bottom}" stroke="#{color}" stroke-width="#{stroke_width}" stroke-dasharray="#{stroke_dash}" />
|
30
|
-
SVG
|
31
|
-
end
|
14
|
+
|
15
|
+
svg << arrow_pointer(x, pointer_top, top, top, color, stroke_width, stroke_dash) unless pointer_top.nil?
|
16
|
+
svg << arrow_pointer(x, pointer_bottom, bottom, bottom, color, stroke_width, stroke_dash) unless pointer_bottom.nil?
|
32
17
|
|
33
18
|
svg << <<~SVG
|
34
19
|
<path d="M#{x} #{top} l #{arrow_size} #{arrow_size} M#{x} #{top} l -#{arrow_size} #{arrow_size} M#{x} #{top} l 0 #{bottom - top} l #{arrow_size} -#{arrow_size} M#{x} #{bottom} l -#{arrow_size} -#{arrow_size}" stroke="#{color}" stroke-width="#{stroke_width}" fill="none" />
|
@@ -46,26 +31,11 @@ class USPSFlags::Helpers::SpecArrows
|
|
46
31
|
# This is used USPSFlags::Core.trident_spec, and should never need to be called directly.
|
47
32
|
# @private
|
48
33
|
def horizontal(y, left, right, pointer_left = nil, pointer_right = nil, label: nil, label_offset: (USPSFlags::Config::BASE_FLY/45), label_offset_x: 0, label_align: "middle", color: "#CCCCCC", stroke_width: (USPSFlags::Config::BASE_FLY/600), stroke_dash: "10, 10", font_size: (USPSFlags::Config::BASE_FLY/60), arrow_size: (USPSFlags::Config::BASE_FLY/120), fly: USPSFlags::Config::BASE_FLY, unit: nil)
|
49
|
-
label = right
|
50
|
-
label = label.to_i if label - label.to_i == 0
|
51
|
-
label = Rational(label) * fly / USPSFlags::Config::BASE_FLY
|
52
|
-
if label == label.to_i
|
53
|
-
label = label.to_i
|
54
|
-
label_fraction = ""
|
55
|
-
else
|
56
|
-
label, label_fraction = label.to_simplified_a
|
57
|
-
end
|
34
|
+
label, label_fraction = get_labels(right, left, fly, label: label)
|
58
35
|
svg = ""
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
SVG
|
63
|
-
end
|
64
|
-
unless pointer_right.nil?
|
65
|
-
svg << <<~SVG
|
66
|
-
<line x1="#{right}" y1="#{y}" x2="#{right}" y2="#{pointer_right}" stroke="#{color}" stroke-width="#{stroke_width}" stroke-dasharray="#{stroke_dash}" />
|
67
|
-
SVG
|
68
|
-
end
|
36
|
+
|
37
|
+
svg << arrow_pointer(left, left, pointer_left, y, color, stroke_width, stroke_dash) unless pointer_left.nil?
|
38
|
+
svg << arrow_pointer(right, right, y, pointer_right, color, stroke_width, stroke_dash) unless pointer_right.nil?
|
69
39
|
|
70
40
|
svg << <<~SVG
|
71
41
|
<path d="M#{left} #{y} l #{arrow_size} #{arrow_size} M#{left} #{y} l #{arrow_size} -#{arrow_size} M#{left} #{y} l #{right - left} 0 l -#{arrow_size} -#{arrow_size} M#{right} #{y} l -#{arrow_size} #{arrow_size}" stroke="#{color}" stroke-width="#{stroke_width}" fill="none" />
|
@@ -77,5 +47,25 @@ class USPSFlags::Helpers::SpecArrows
|
|
77
47
|
|
78
48
|
svg
|
79
49
|
end
|
50
|
+
|
51
|
+
private
|
52
|
+
def arrow_pointer(x1, x2, y1, y2, color, stroke_width, stroke_dash)
|
53
|
+
<<~SVG
|
54
|
+
<line x1="#{x1}" y1="#{y1}" x2="#{x2}" y2="#{y2}" stroke="#{color}" stroke-width="#{stroke_width}" stroke-dasharray="#{stroke_dash}" />
|
55
|
+
SVG
|
56
|
+
end
|
57
|
+
|
58
|
+
def get_labels(a, b, fly, label: nil)
|
59
|
+
label = a - b if label.nil?
|
60
|
+
label = label.to_i if label - label.to_i == 0
|
61
|
+
label = Rational(label) * fly / USPSFlags::Config::BASE_FLY
|
62
|
+
if label == label.to_i
|
63
|
+
label = label.to_i
|
64
|
+
label_fraction = ""
|
65
|
+
else
|
66
|
+
label, label_fraction = label.to_simplified_a
|
67
|
+
end
|
68
|
+
[label, label_fraction]
|
69
|
+
end
|
80
70
|
end
|
81
71
|
end
|
data/usps_flags.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'usps_flags'
|
3
|
-
s.version = '0.2.
|
4
|
-
s.date = '2017-11-
|
3
|
+
s.version = '0.2.6'
|
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.'
|
7
7
|
s.homepage = 'http://rubygems.org/gems/usps_flags'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: usps_flags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Fiander
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
3YzYAc+kXfD7kkzA2NMvLT6Q1v03qQyIZ8BS8SNk5wLGAdLM+IravFDLEs448fjz
|
31
31
|
lEAU0RHLFVbE+CXW6makIlWGHR0=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2017-11-
|
33
|
+
date: 2017-11-06 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: file_utils
|
metadata.gz.sig
CHANGED
Binary file
|