usps_flags 0.3.26 → 0.4.0

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +87 -0
  3. data/Gemfile +3 -1
  4. data/Gemfile.lock +2 -2
  5. data/Rakefile +4 -2
  6. data/lib/rational.rb +3 -1
  7. data/lib/usps_flags.rb +15 -17
  8. data/lib/usps_flags/config.rb +32 -29
  9. data/lib/usps_flags/core.rb +11 -9
  10. data/lib/usps_flags/core/ensign.rb +20 -17
  11. data/lib/usps_flags/core/field.rb +33 -30
  12. data/lib/usps_flags/core/footer.rb +2 -0
  13. data/lib/usps_flags/core/headers.rb +11 -8
  14. data/lib/usps_flags/core/icons.rb +14 -0
  15. data/lib/usps_flags/core/{anchor.rb → icons/anchor.rb} +7 -5
  16. data/lib/usps_flags/core/{binoculars.rb → icons/binoculars.rb} +7 -5
  17. data/lib/usps_flags/core/{lighthouse.rb → icons/lighthouse.rb} +3 -1
  18. data/lib/usps_flags/core/{star.rb → icons/star.rb} +3 -1
  19. data/lib/usps_flags/core/{trident.rb → icons/trident.rb} +29 -25
  20. data/lib/usps_flags/core/{trumpet.rb → icons/trumpet.rb} +3 -1
  21. data/lib/usps_flags/core/pennant.rb +20 -17
  22. data/lib/usps_flags/core/trident_spec.rb +62 -174
  23. data/lib/usps_flags/core/trident_specs.rb +14 -0
  24. data/lib/usps_flags/core/trident_specs/base.rb +15 -0
  25. data/lib/usps_flags/core/trident_specs/circle.rb +51 -0
  26. data/lib/usps_flags/core/trident_specs/delta.rb +68 -0
  27. data/lib/usps_flags/core/trident_specs/header.rb +65 -0
  28. data/lib/usps_flags/core/trident_specs/long.rb +54 -0
  29. data/lib/usps_flags/core/trident_specs/short.rb +176 -0
  30. data/lib/usps_flags/core/tridents.rb +16 -14
  31. data/lib/usps_flags/core/us.rb +9 -7
  32. data/lib/usps_flags/core/wheel.rb +2 -0
  33. data/lib/usps_flags/errors.rb +16 -4
  34. data/lib/usps_flags/generate.rb +48 -44
  35. data/lib/usps_flags/generate/flag.rb +33 -30
  36. data/lib/usps_flags/helpers.rb +48 -63
  37. data/lib/usps_flags/helpers/builders.rb +39 -37
  38. data/lib/usps_flags/helpers/spec_arrows.rb +16 -13
  39. data/spec/rational_spec.rb +9 -7
  40. data/spec/spec_helper.rb +5 -3
  41. data/spec/usps_flags/config_spec.rb +15 -13
  42. data/spec/usps_flags/core_spec.rb +52 -51
  43. data/spec/usps_flags/generate_spec.rb +70 -60
  44. data/spec/usps_flags/helpers_spec.rb +12 -10
  45. data/spec/usps_flags_spec.rb +22 -20
  46. data/usps_flags.gemspec +4 -2
  47. metadata +31 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0521b62207fb9d9d13206972bd4191d3bd8c22c29c7fe4a249e4029cecbbd010
4
- data.tar.gz: e5d1f626ec6874f6cc64c3f8c0cb5d52f0a959d0d4a653f6415291d20c071ad8
3
+ metadata.gz: 451c283ce311f5d823d989cddddce93a7b160239b472bd663d658c8b4e46be46
4
+ data.tar.gz: 25258a07e6a71f51a2d0826836b48e454643afd568b6f17d1010056460b4d963
5
5
  SHA512:
6
- metadata.gz: dde0ed9cd1bcba8808fce3380fb399336a94c624b4ef06acc91eab146cd83abdc676e5cbfc320914875d8380ec54db3b8c75cb34e9c2f362f34cb288dfe7a0f6
7
- data.tar.gz: 9d37013cb48d27b9b0137fece5c16525ae8acd153644cff363269aba2a74f47a49e58e2d6b27fe7dcf466fbd261fb2d020a2eaff459c1ddbe433ca778db6aa54
6
+ metadata.gz: 9a019ca921c5b622c06e937f0b0e4dd047f60eed70a828775c14d22272eb44a798ee363aae4fd0ba079cedae03722289d1f3b10eb2329e68f2ed79f110886d35
7
+ data.tar.gz: 650f1793ee7f310f9877cf4017361ce95e5468a9e53d623bd5425e002f179037a8811c5c90bbed9f852420d9873e1751fb0d6a279b35d2d0de455f79cbb73e33
@@ -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
@@ -1,2 +1,4 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: false
2
+
3
+ source 'https://rubygems.org'
2
4
  gemspec
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- usps_flags (0.3.26)
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.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
@@ -1,5 +1,7 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: false
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new
5
7
 
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: false
2
+
1
3
  # Monkey patch to add some formatting methods to Rational.
2
- #
4
+ #
3
5
  # @author Julian Fiander
4
6
  # @since 0.1.5
5
7
  class Rational
@@ -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
- require 'usps_flags/config'
12
- require 'usps_flags/helpers'
13
- require 'usps_flags/core'
14
- require 'usps_flags/generate'
15
- require 'usps_flags/errors'
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
- # Dir['./lib/usps_flags/core/**'].map { |d| d.split("/").last.split(".rb").first }
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 == "") ? svg : 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, "A path must be set with png_file." if self.png_file.nil?
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
@@ -1,18 +1,20 @@
1
+ # frozen_string_literal: false
2
+
1
3
  # Container class for configuration values.
2
4
  class USPSFlags::Config
3
- BLUE ||= "#012169"
4
- RED ||= "#E4002B"
5
- GOLD ||= "#FFBF3F"
6
- OLD_GLORY_BLUE ||= "#041E42"
7
- OLD_GLORY_RED ||= "#BF0D3E"
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
- private
92
+ private
93
+
91
94
  def get_defaults
92
95
  @flags_dir = if defined?(::Rails)
93
96
  "#{::Rails.root}/app/assets/images/usps-flags"
@@ -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: "in", scaled_border: false)
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: "USPS Flag")
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 = "cruise")
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
- private
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 = "#FFFFFF"
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 = "#FFFFFF"
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 = "#FFFFFF"
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
- private
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