usps_flags 0.3.26 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +87 -0
- data/Gemfile +3 -1
- data/Gemfile.lock +2 -2
- data/Rakefile +4 -2
- data/lib/rational.rb +3 -1
- data/lib/usps_flags.rb +15 -17
- data/lib/usps_flags/config.rb +32 -29
- data/lib/usps_flags/core.rb +11 -9
- data/lib/usps_flags/core/ensign.rb +20 -17
- data/lib/usps_flags/core/field.rb +33 -30
- data/lib/usps_flags/core/footer.rb +2 -0
- data/lib/usps_flags/core/headers.rb +11 -8
- data/lib/usps_flags/core/icons.rb +14 -0
- data/lib/usps_flags/core/{anchor.rb → icons/anchor.rb} +7 -5
- data/lib/usps_flags/core/{binoculars.rb → icons/binoculars.rb} +7 -5
- data/lib/usps_flags/core/{lighthouse.rb → icons/lighthouse.rb} +3 -1
- data/lib/usps_flags/core/{star.rb → icons/star.rb} +3 -1
- data/lib/usps_flags/core/{trident.rb → icons/trident.rb} +29 -25
- data/lib/usps_flags/core/{trumpet.rb → icons/trumpet.rb} +3 -1
- data/lib/usps_flags/core/pennant.rb +20 -17
- data/lib/usps_flags/core/trident_spec.rb +62 -174
- data/lib/usps_flags/core/trident_specs.rb +14 -0
- data/lib/usps_flags/core/trident_specs/base.rb +15 -0
- data/lib/usps_flags/core/trident_specs/circle.rb +51 -0
- data/lib/usps_flags/core/trident_specs/delta.rb +68 -0
- data/lib/usps_flags/core/trident_specs/header.rb +65 -0
- data/lib/usps_flags/core/trident_specs/long.rb +54 -0
- data/lib/usps_flags/core/trident_specs/short.rb +176 -0
- data/lib/usps_flags/core/tridents.rb +16 -14
- data/lib/usps_flags/core/us.rb +9 -7
- data/lib/usps_flags/core/wheel.rb +2 -0
- data/lib/usps_flags/errors.rb +16 -4
- data/lib/usps_flags/generate.rb +48 -44
- data/lib/usps_flags/generate/flag.rb +33 -30
- data/lib/usps_flags/helpers.rb +48 -63
- data/lib/usps_flags/helpers/builders.rb +39 -37
- data/lib/usps_flags/helpers/spec_arrows.rb +16 -13
- data/spec/rational_spec.rb +9 -7
- data/spec/spec_helper.rb +5 -3
- data/spec/usps_flags/config_spec.rb +15 -13
- data/spec/usps_flags/core_spec.rb +52 -51
- data/spec/usps_flags/generate_spec.rb +70 -60
- data/spec/usps_flags/helpers_spec.rb +12 -10
- data/spec/usps_flags_spec.rb +22 -20
- data/usps_flags.gemspec +4 -2
- metadata +31 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 451c283ce311f5d823d989cddddce93a7b160239b472bd663d658c8b4e46be46
|
4
|
+
data.tar.gz: 25258a07e6a71f51a2d0826836b48e454643afd568b6f17d1010056460b4d963
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a019ca921c5b622c06e937f0b0e4dd047f60eed70a828775c14d22272eb44a798ee363aae4fd0ba079cedae03722289d1f3b10eb2329e68f2ed79f110886d35
|
7
|
+
data.tar.gz: 650f1793ee7f310f9877cf4017361ce95e5468a9e53d623bd5425e002f179037a8811c5c90bbed9f852420d9873e1751fb0d6a279b35d2d0de455f79cbb73e33
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
inherit_gem:
|
2
|
+
rubocop-rails_config:
|
3
|
+
- config/rails.yml
|
4
|
+
require: rubocop-rspec
|
5
|
+
AllCops:
|
6
|
+
TargetRubyVersion: 2.5
|
7
|
+
Exclude:
|
8
|
+
- tmp/**/*
|
9
|
+
|
10
|
+
Layout/IndentHash:
|
11
|
+
EnforcedStyle: consistent
|
12
|
+
Layout/AccessModifierIndentation:
|
13
|
+
EnforcedStyle: outdent
|
14
|
+
Layout/EmptyLinesAroundAccessModifier:
|
15
|
+
Enabled: true
|
16
|
+
Layout/AlignArray:
|
17
|
+
Enabled: true
|
18
|
+
Layout/AlignHash:
|
19
|
+
Enabled: true
|
20
|
+
Layout/EmptyLineAfterGuardClause:
|
21
|
+
Enabled: true
|
22
|
+
Layout/SpaceInsideBlockBraces:
|
23
|
+
EnforcedStyle: space
|
24
|
+
EnforcedStyleForEmptyBraces: no_space
|
25
|
+
Layout/SpaceInsideHashLiteralBraces:
|
26
|
+
EnforcedStyle: space
|
27
|
+
EnforcedStyleForEmptyBraces: no_space
|
28
|
+
Layout/SpaceInsideArrayLiteralBrackets:
|
29
|
+
EnforcedStyle: no_space
|
30
|
+
|
31
|
+
Lint/UnusedMethodArgument:
|
32
|
+
Enabled: true
|
33
|
+
Lint/UselessAssignment:
|
34
|
+
Enabled: true
|
35
|
+
|
36
|
+
Metrics/BlockLength:
|
37
|
+
Exclude:
|
38
|
+
- 'spec/**/*.rb'
|
39
|
+
Metrics/LineLength:
|
40
|
+
Exclude:
|
41
|
+
- 'spec/**/*.rb'
|
42
|
+
Max: 100
|
43
|
+
Metrics/LineLength:
|
44
|
+
Include:
|
45
|
+
- 'spec/**/*.rb'
|
46
|
+
Max: 120
|
47
|
+
Metrics/MethodLength:
|
48
|
+
Enabled: true
|
49
|
+
Metrics/ClassLength:
|
50
|
+
Enabled: true
|
51
|
+
Max: 125
|
52
|
+
Metrics/ParameterLists:
|
53
|
+
Enabled: true
|
54
|
+
Metrics/CyclomaticComplexity:
|
55
|
+
Enabled: true
|
56
|
+
Metrics/AbcSize:
|
57
|
+
Enabled: true
|
58
|
+
|
59
|
+
Rails/InverseOf:
|
60
|
+
Enabled: true
|
61
|
+
|
62
|
+
RSpec/MessageSpies:
|
63
|
+
EnforcedStyle: receive
|
64
|
+
|
65
|
+
Style/Documentation:
|
66
|
+
Enabled: false
|
67
|
+
Style/FrozenStringLiteralComment:
|
68
|
+
Enabled: true
|
69
|
+
Style/NumericLiterals:
|
70
|
+
Enabled: true
|
71
|
+
Style/StringLiterals:
|
72
|
+
EnforcedStyle: single_quotes
|
73
|
+
Style/AndOr:
|
74
|
+
Enabled: true
|
75
|
+
Style/ClassCheck:
|
76
|
+
Enabled: true
|
77
|
+
Style/GuardClause:
|
78
|
+
Enabled: true
|
79
|
+
|
80
|
+
Security/Eval:
|
81
|
+
Enabled: true
|
82
|
+
Security/JSONLoad:
|
83
|
+
Enabled: true
|
84
|
+
Security/JSONLoad:
|
85
|
+
Enabled: true
|
86
|
+
Security/YAMLLoad:
|
87
|
+
Enabled: true
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
usps_flags (0.
|
4
|
+
usps_flags (0.4.0)
|
5
5
|
file_utils (~> 1.1, >= 1.1.2)
|
6
6
|
mini_magick (~> 4.8, >= 4.8.0)
|
7
7
|
rubyzip (~> 1.2, >= 1.2.1)
|
@@ -28,7 +28,7 @@ GEM
|
|
28
28
|
diff-lcs (>= 1.2.0, < 2.0)
|
29
29
|
rspec-support (~> 3.7.0)
|
30
30
|
rspec-support (3.7.0)
|
31
|
-
rubyzip (1.2.
|
31
|
+
rubyzip (1.2.3)
|
32
32
|
simplecov (0.15.1)
|
33
33
|
docile (~> 1.1.0)
|
34
34
|
json (>= 1.8, < 3)
|
data/Rakefile
CHANGED
data/lib/rational.rb
CHANGED
data/lib/usps_flags.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
1
3
|
# Base class for the namespace. Provides a constructor DSL.
|
2
|
-
#
|
4
|
+
#
|
3
5
|
# @author Julian Fiander
|
4
6
|
# @since 0.1.5
|
5
7
|
class USPSFlags
|
@@ -8,27 +10,22 @@ class USPSFlags
|
|
8
10
|
require 'mini_magick'
|
9
11
|
require 'rational'
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
%w[config helpers core generate errors].each do |d|
|
14
|
+
require "usps_flags/#{d}"
|
15
|
+
end
|
16
|
+
|
17
|
+
%w[builders spec_arrows].each do |d|
|
18
|
+
require "usps_flags/helpers/#{d}"
|
19
|
+
end
|
16
20
|
|
17
|
-
|
18
|
-
%w[anchor binoculars ensign field footer headers lighthouse pennant star trident tridents trident_spec trumpet us wheel].each do |d|
|
21
|
+
%w[icons ensign field footer headers pennant tridents trident_specs trident_spec us wheel].each do |d|
|
19
22
|
require "usps_flags/core/#{d}"
|
20
23
|
end
|
21
24
|
|
22
|
-
# Dir['./lib/usps_flags/generate/**'].map { |d| d.split("/").last.split(".rb").first }
|
23
25
|
%w[flag].each do |d|
|
24
26
|
require "usps_flags/generate/#{d}"
|
25
27
|
end
|
26
28
|
|
27
|
-
# Dir['./lib/usps_flags/helpers/**'].map { |d| d.split("/").last.split(".rb").first }
|
28
|
-
%w[builders spec_arrows].each do |d|
|
29
|
-
require "usps_flags/helpers/#{d}"
|
30
|
-
end
|
31
|
-
|
32
29
|
class << self
|
33
30
|
attr_accessor :configuration
|
34
31
|
end
|
@@ -126,7 +123,7 @@ class USPSFlags
|
|
126
123
|
# @return [String] Returns the SVG file output path, or the svg data if no path was specified.
|
127
124
|
def svg
|
128
125
|
svg = USPSFlags::Generate.svg(self.type, outfile: self.svg_file, scale: self.scale, field: self.field)
|
129
|
-
(self.svg_file.nil? || self.svg_file ==
|
126
|
+
(self.svg_file.nil? || self.svg_file == '') ? svg : self.svg_file
|
130
127
|
end
|
131
128
|
|
132
129
|
# Generates the constructed file as PNG.
|
@@ -135,9 +132,10 @@ class USPSFlags
|
|
135
132
|
#
|
136
133
|
# @return [String] Returns the SVG file output path.
|
137
134
|
def png
|
138
|
-
raise USPSFlags::Errors::PNGGenerationError,
|
135
|
+
raise USPSFlags::Errors::PNGGenerationError, 'A path must be set with png_file.' if self.png_file.nil?
|
136
|
+
|
139
137
|
svg_file_storage = self.svg_file
|
140
|
-
self.svg_file =
|
138
|
+
self.svg_file = ''
|
141
139
|
USPSFlags::Generate.png(self.svg, outfile: self.png_file, trim: self.trim)
|
142
140
|
self.svg_file = svg_file_storage
|
143
141
|
self.png_file
|
data/lib/usps_flags/config.rb
CHANGED
@@ -1,18 +1,20 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
1
3
|
# Container class for configuration values.
|
2
4
|
class USPSFlags::Config
|
3
|
-
BLUE ||=
|
4
|
-
RED ||=
|
5
|
-
GOLD ||=
|
6
|
-
OLD_GLORY_BLUE ||=
|
7
|
-
OLD_GLORY_RED ||=
|
5
|
+
BLUE ||= '#012169'
|
6
|
+
RED ||= '#E4002B'
|
7
|
+
GOLD ||= '#FFBF3F'
|
8
|
+
OLD_GLORY_BLUE ||= '#041E42'
|
9
|
+
OLD_GLORY_RED ||= '#BF0D3E'
|
8
10
|
|
9
11
|
# Base measurements for most flags, before scaling
|
10
12
|
BASE_FLY ||= 3072
|
11
|
-
BASE_HOIST ||= BASE_FLY*2/3
|
13
|
+
BASE_HOIST ||= BASE_FLY * 2 / 3
|
12
14
|
FRACTION_SCALE ||= 85
|
13
15
|
|
14
16
|
attr_accessor :flags_dir, :clear
|
15
|
-
|
17
|
+
|
16
18
|
# Configuration constructor
|
17
19
|
#
|
18
20
|
# @param [String] flag_dir The path to the flags directory.
|
@@ -28,39 +30,39 @@ class USPSFlags::Config
|
|
28
30
|
#
|
29
31
|
# @return [Hash] RThe configuration values for tridents.
|
30
32
|
def trident
|
31
|
-
center_point_height = USPSFlags::Config::BASE_FLY/48*23/8
|
32
|
-
side_point_height = USPSFlags::Config::BASE_FLY/48*21/8
|
33
|
-
bar_width = USPSFlags::Config::BASE_FLY/48*5/4
|
33
|
+
center_point_height = USPSFlags::Config::BASE_FLY / 48 * 23 / 8
|
34
|
+
side_point_height = USPSFlags::Config::BASE_FLY / 48 * 21 / 8
|
35
|
+
bar_width = USPSFlags::Config::BASE_FLY / 48 * 5 / 4
|
34
36
|
{
|
35
37
|
height: trident_heights,
|
36
38
|
|
37
|
-
center_point: BASE_FLY/2,
|
39
|
+
center_point: BASE_FLY / 2,
|
38
40
|
|
39
|
-
width: USPSFlags::Config::BASE_FLY*5/32,
|
41
|
+
width: USPSFlags::Config::BASE_FLY * 5 / 32,
|
40
42
|
|
41
43
|
bar_width: bar_width,
|
42
44
|
|
43
45
|
center_point_height: center_point_height,
|
44
46
|
side_point_height: side_point_height,
|
45
47
|
|
46
|
-
main_point_barb: USPSFlags::Config::BASE_HOIST/82,
|
48
|
+
main_point_barb: USPSFlags::Config::BASE_HOIST / 82,
|
47
49
|
|
48
|
-
crossbar_from_top: USPSFlags::Config::BASE_HOIST/4 + bar_width/5,
|
50
|
+
crossbar_from_top: USPSFlags::Config::BASE_HOIST / 4 + bar_width / 5,
|
49
51
|
|
50
|
-
side_spike_height: USPSFlags::Config::BASE_HOIST/4-side_point_height-bar_width*3/5,
|
52
|
+
side_spike_height: USPSFlags::Config::BASE_HOIST / 4 - side_point_height - bar_width * 3 / 5,
|
51
53
|
|
52
|
-
hash_width: USPSFlags::Config::BASE_FLY*47/528,
|
54
|
+
hash_width: USPSFlags::Config::BASE_FLY * 47 / 528,
|
53
55
|
|
54
|
-
delta_height: USPSFlags::Config::BASE_FLY*33/240,
|
55
|
-
delta_gap_height: USPSFlags::Config::BASE_FLY/16,
|
56
|
-
delta_gap_width: bar_width*5/4,
|
57
|
-
delta_width: USPSFlags::Config::BASE_FLY*43/768,
|
58
|
-
delta_from_bottom: USPSFlags::Config::BASE_HOIST*10/64,
|
56
|
+
delta_height: USPSFlags::Config::BASE_FLY * 33 / 240,
|
57
|
+
delta_gap_height: USPSFlags::Config::BASE_FLY / 16,
|
58
|
+
delta_gap_width: bar_width * 5 / 4,
|
59
|
+
delta_width: USPSFlags::Config::BASE_FLY * 43 / 768,
|
60
|
+
delta_from_bottom: USPSFlags::Config::BASE_HOIST * 10 / 64,
|
59
61
|
delta_gap_scale: 0.40,
|
60
|
-
delta_gap_x: USPSFlags::Config::BASE_HOIST*144/128,
|
61
|
-
delta_gap_y: USPSFlags::Config::BASE_HOIST*221/256,
|
62
|
+
delta_gap_x: USPSFlags::Config::BASE_HOIST * 144 / 128,
|
63
|
+
delta_gap_y: USPSFlags::Config::BASE_HOIST * 221 / 256,
|
62
64
|
|
63
|
-
circle_height_adj: USPSFlags::Config::BASE_FLY/800
|
65
|
+
circle_height_adj: USPSFlags::Config::BASE_FLY / 800
|
64
66
|
}
|
65
67
|
end
|
66
68
|
|
@@ -69,10 +71,10 @@ class USPSFlags::Config
|
|
69
71
|
# @return [Hash] The height values for tridents.
|
70
72
|
def trident_heights
|
71
73
|
{
|
72
|
-
s: USPSFlags::Config::BASE_HOIST/2,
|
73
|
-
d: USPSFlags::Config::BASE_HOIST*5/8,
|
74
|
-
stf: USPSFlags::Config::BASE_HOIST*3/4,
|
75
|
-
n: USPSFlags::Config::BASE_HOIST*3/4
|
74
|
+
s: USPSFlags::Config::BASE_HOIST / 2,
|
75
|
+
d: USPSFlags::Config::BASE_HOIST * 5 / 8,
|
76
|
+
stf: USPSFlags::Config::BASE_HOIST * 3 / 4,
|
77
|
+
n: USPSFlags::Config::BASE_HOIST * 3 / 4
|
76
78
|
}
|
77
79
|
end
|
78
80
|
|
@@ -87,7 +89,8 @@ class USPSFlags::Config
|
|
87
89
|
end
|
88
90
|
end
|
89
91
|
|
90
|
-
|
92
|
+
private
|
93
|
+
|
91
94
|
def get_defaults
|
92
95
|
@flags_dir = if defined?(::Rails)
|
93
96
|
"#{::Rails.root}/app/assets/images/usps-flags"
|
data/lib/usps_flags/core.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
1
3
|
# Controller class for the core SVG data.
|
2
4
|
#
|
3
5
|
# These methods should never need to be called directly.
|
4
6
|
# @private
|
5
7
|
class USPSFlags::Core
|
6
|
-
def self.trident_spec(fly: 24, unit:
|
8
|
+
def self.trident_spec(fly: 24, unit: 'in', scaled_border: false)
|
7
9
|
USPSFlags::Core::TridentSpec.new(fly: fly, unit: unit, scaled_border: scaled_border).svg
|
8
10
|
end
|
9
11
|
|
10
|
-
def self.headers(width: nil, height: nil, pennant: false, scale: nil, title:
|
12
|
+
def self.headers(width: nil, height: nil, pennant: false, scale: nil, title: 'USPS Flag')
|
11
13
|
USPSFlags::Core::Headers.new(width: width, height: height, pennant: pennant, scale: scale, title: title).svg
|
12
14
|
end
|
13
15
|
|
@@ -20,26 +22,26 @@ class USPSFlags::Core
|
|
20
22
|
end
|
21
23
|
|
22
24
|
def self.trident(type, color: :blue, field_color: nil)
|
23
|
-
USPSFlags::Core::Trident.new(type, color: color, field_color: field_color).svg
|
25
|
+
USPSFlags::Core::Icons::Trident.new(type, color: color, field_color: field_color).svg
|
24
26
|
end
|
25
27
|
|
26
28
|
def self.anchor(color = :red)
|
27
|
-
USPSFlags::Core::Anchor.new(color: color).svg
|
29
|
+
USPSFlags::Core::Icons::Anchor.new(color: color).svg
|
28
30
|
end
|
29
31
|
|
30
32
|
def self.lighthouse
|
31
|
-
USPSFlags::Core::Lighthouse.new.svg
|
33
|
+
USPSFlags::Core::Icons::Lighthouse.new.svg
|
32
34
|
end
|
33
35
|
|
34
36
|
def self.binoculars(type = :d)
|
35
|
-
USPSFlags::Core::Binoculars.new(type: type).svg
|
37
|
+
USPSFlags::Core::Icons::Binoculars.new(type: type).svg
|
36
38
|
end
|
37
39
|
|
38
40
|
def self.trumpet(type = :s)
|
39
|
-
USPSFlags::Core::Trumpet.new(type: type).svg
|
41
|
+
USPSFlags::Core::Icons::Trumpet.new(type: type).svg
|
40
42
|
end
|
41
43
|
|
42
|
-
def self.pennant(type =
|
44
|
+
def self.pennant(type = 'cruise')
|
43
45
|
USPSFlags::Core::Pennant.new(type: type).svg
|
44
46
|
end
|
45
47
|
|
@@ -48,7 +50,7 @@ class USPSFlags::Core
|
|
48
50
|
end
|
49
51
|
|
50
52
|
def self.star
|
51
|
-
USPSFlags::Core::Star.new.svg
|
53
|
+
USPSFlags::Core::Icons::Star.new.svg
|
52
54
|
end
|
53
55
|
|
54
56
|
def self.wheel
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
1
3
|
# Core SVG data for the USPS Ensign.
|
2
4
|
#
|
3
5
|
# This class should never need to be called directly.
|
@@ -9,7 +11,7 @@ class USPSFlags::Core::Ensign
|
|
9
11
|
<g transform="scale(0.3675)">
|
10
12
|
<g transform="translate(1200, 600)">
|
11
13
|
<g transform="rotate(-45, 693, 1500)">
|
12
|
-
#{USPSFlags::Core::Anchor.new(color: :white).svg}
|
14
|
+
#{USPSFlags::Core::Icons::Anchor.new(color: :white).svg}
|
13
15
|
</g>
|
14
16
|
</g>
|
15
17
|
</g>
|
@@ -17,29 +19,30 @@ class USPSFlags::Core::Ensign
|
|
17
19
|
SVG
|
18
20
|
end
|
19
21
|
|
20
|
-
|
22
|
+
private
|
23
|
+
|
21
24
|
def stripes
|
22
25
|
<<~SVG
|
23
|
-
<rect x="0" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
24
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*1/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
25
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*2/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
26
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*3/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
27
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*4/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
28
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*5/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
29
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*6/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
30
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*7/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
31
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*8/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
32
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*9/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
33
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*10/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
34
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*11/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
35
|
-
<rect x="#{USPSFlags::Config::BASE_FLY*12/13}" y="0" width="#{USPSFlags::Config::BASE_FLY/13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
36
|
-
<rect x="0" y="0" width="#{USPSFlags::Config::BASE_FLY*6/13}" height="1000" fill="#{USPSFlags::Config::RED}" />
|
26
|
+
<rect x="0" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
27
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 1 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
28
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 2 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
29
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 3 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
30
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 4 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
31
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 5 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
32
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 6 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
33
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 7 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
34
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 8 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
35
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 9 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
36
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 10 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
37
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 11 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#FFFFFF" />
|
38
|
+
<rect x="#{USPSFlags::Config::BASE_FLY * 12 / 13}" y="0" width="#{USPSFlags::Config::BASE_FLY / 13}" height="#{USPSFlags::Config::BASE_HOIST}" fill="#{USPSFlags::Config::BLUE}" />
|
39
|
+
<rect x="0" y="0" width="#{USPSFlags::Config::BASE_FLY * 6 / 13}" height="1000" fill="#{USPSFlags::Config::RED}" />
|
37
40
|
SVG
|
38
41
|
# <circle cx="#{USPSFlags::Config::BASE_FLY*3/13}" cy="#{USPSFlags::Config::BASE_HOIST/4}" r="#{USPSFlags::Config::BASE_FLY*6/13*5/16}" fill="#FFFFFF" fill-opacity="0.6" />
|
39
42
|
end
|
40
43
|
|
41
44
|
def star_circle
|
42
|
-
svg =
|
45
|
+
svg = ''
|
43
46
|
(0..13).each do |i|
|
44
47
|
rotation = i * (360.0 / 13)
|
45
48
|
svg << <<~SVG
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
1
3
|
# Core SVG data for the flag fields.
|
2
4
|
#
|
3
5
|
# This class should never need to be called directly.
|
@@ -9,21 +11,21 @@ class USPSFlags::Core::Field
|
|
9
11
|
case color
|
10
12
|
when :white
|
11
13
|
border = true
|
12
|
-
@color_code =
|
14
|
+
@color_code = '#FFFFFF'
|
13
15
|
@past_mid_color = USPSFlags::Config::BLUE
|
14
16
|
@past_tail_color = USPSFlags::Config::RED
|
15
17
|
when :red
|
16
18
|
border = false
|
17
19
|
@color_code = USPSFlags::Config::RED
|
18
|
-
@past_mid_color =
|
20
|
+
@past_mid_color = '#FFFFFF'
|
19
21
|
@past_tail_color = USPSFlags::Config::BLUE
|
20
22
|
when :blue
|
21
23
|
border = false
|
22
24
|
@color_code = USPSFlags::Config::BLUE
|
23
|
-
@past_mid_color =
|
25
|
+
@past_mid_color = '#FFFFFF'
|
24
26
|
@past_tail_color = USPSFlags::Config::RED
|
25
27
|
end
|
26
|
-
@border_svg = border ? "stroke=\"#000000\" stroke-width=\"#{USPSFlags::Config::BASE_FLY/600}\" " :
|
28
|
+
@border_svg = border ? "stroke=\"#000000\" stroke-width=\"#{USPSFlags::Config::BASE_FLY / 600}\" " : ''
|
27
29
|
|
28
30
|
@hoist = (@fly * 2) / 3
|
29
31
|
end
|
@@ -39,7 +41,8 @@ class USPSFlags::Core::Field
|
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
42
|
-
|
44
|
+
private
|
45
|
+
|
43
46
|
def regular_field
|
44
47
|
<<~SVG
|
45
48
|
<path d="M 0 0
|
@@ -53,40 +56,40 @@ class USPSFlags::Core::Field
|
|
53
56
|
|
54
57
|
def swallowtail_field
|
55
58
|
<<~SVG
|
56
|
-
<path d="M #{USPSFlags::Config::BASE_FLY/1200} #{USPSFlags::Config::BASE_FLY/1800}
|
57
|
-
l #{@fly} #{@hoist/6}
|
58
|
-
l -#{@fly/5} #{@hoist/3}
|
59
|
-
l #{@fly/5} #{@hoist/3}
|
60
|
-
l -#{@fly} #{@hoist/6} z
|
61
|
-
" fill="#FFFFFF" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
|
59
|
+
<path d="M #{USPSFlags::Config::BASE_FLY / 1200} #{USPSFlags::Config::BASE_FLY / 1800}
|
60
|
+
l #{@fly} #{@hoist / 6}
|
61
|
+
l -#{@fly / 5} #{@hoist / 3}
|
62
|
+
l #{@fly / 5} #{@hoist / 3}
|
63
|
+
l -#{@fly} #{@hoist / 6} z
|
64
|
+
" fill="#FFFFFF" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY / 600}" />
|
62
65
|
SVG
|
63
66
|
end
|
64
67
|
|
65
68
|
def past_field
|
66
69
|
<<~SVG
|
67
|
-
<g transform="translate(#{USPSFlags::Config::BASE_FLY/1200}, #{USPSFlags::Config::BASE_FLY/1800})">
|
68
|
-
<path d="M 0 #{USPSFlags::Config::BASE_FLY/600}
|
69
|
-
l #{@fly/2} #{@hoist/12}
|
70
|
-
l 0 #{@hoist*10/12}
|
71
|
-
l -#{@fly/2} #{@hoist/12}
|
70
|
+
<g transform="translate(#{USPSFlags::Config::BASE_FLY / 1200}, #{USPSFlags::Config::BASE_FLY / 1800})">
|
71
|
+
<path d="M 0 #{USPSFlags::Config::BASE_FLY / 600}
|
72
|
+
l #{@fly / 2} #{@hoist / 12}
|
73
|
+
l 0 #{@hoist * 10 / 12}
|
74
|
+
l -#{@fly / 2} #{@hoist / 12}
|
72
75
|
" fill="#{@color_code}" />
|
73
|
-
<path d="M #{@fly/2} #{@hoist/12}
|
74
|
-
l #{@fly/4} #{@hoist/24}
|
75
|
-
l 0 #{@hoist*9/12}
|
76
|
-
l -#{@fly/4} #{@hoist/24}
|
76
|
+
<path d="M #{@fly / 2} #{@hoist / 12}
|
77
|
+
l #{@fly / 4} #{@hoist / 24}
|
78
|
+
l 0 #{@hoist * 9 / 12}
|
79
|
+
l -#{@fly / 4} #{@hoist / 24}
|
77
80
|
" fill="#{@past_mid_color}" />
|
78
|
-
<path d="M #{@fly*3/4} #{@hoist*3/24}
|
79
|
-
l #{@fly/4} #{@hoist/24}
|
80
|
-
l -#{@fly/5} #{@hoist/3}
|
81
|
-
l #{@fly/5} #{@hoist/3}
|
82
|
-
l -#{@fly/4} #{@hoist/24}
|
81
|
+
<path d="M #{@fly * 3 / 4} #{@hoist * 3 / 24}
|
82
|
+
l #{@fly / 4} #{@hoist / 24}
|
83
|
+
l -#{@fly / 5} #{@hoist / 3}
|
84
|
+
l #{@fly / 5} #{@hoist / 3}
|
85
|
+
l -#{@fly / 4} #{@hoist / 24}
|
83
86
|
" fill="#{@past_tail_color}" />
|
84
87
|
<path d="M 0 0
|
85
|
-
l #{@fly} #{@hoist/6}
|
86
|
-
l -#{@fly/5} #{@hoist/3}
|
87
|
-
l #{@fly/5} #{@hoist/3}
|
88
|
-
l -#{@fly} #{@hoist/6} z
|
89
|
-
" fill="none" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
|
88
|
+
l #{@fly} #{@hoist / 6}
|
89
|
+
l -#{@fly / 5} #{@hoist / 3}
|
90
|
+
l #{@fly / 5} #{@hoist / 3}
|
91
|
+
l -#{@fly} #{@hoist / 6} z
|
92
|
+
" fill="none" stroke="#000000" stroke-width="#{USPSFlags::Config::BASE_FLY / 600}" />
|
90
93
|
</g>
|
91
94
|
SVG
|
92
95
|
end
|