usps_flags 0.6.1 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66522ba47851bcb474d636cc17c8dcb62e25d32564893abfb93e9c3408b9b421
4
- data.tar.gz: d9129013df7517b33e534bb6405ee20a2008e19b3236c04169e45278f46f8fdc
3
+ metadata.gz: e50d14a11c735b4f9f42cdf1e900ab1b30613e09316ce57c27ce6453b9d3d5ae
4
+ data.tar.gz: 59a5f3523c03d5ceb97d7596923ea53c322f8fe9701d23bd5bca1d1d4f7956ce
5
5
  SHA512:
6
- metadata.gz: 4092e043b877705349f24a2fd0ee3733bb2e7b0e75ddbed6f7bf1f1bb3aa1ac6a147c9ff3f69baf779332f7db1e5fb96f8f2480079231d21df181de605856e62
7
- data.tar.gz: 4654f83943621648bde190a5bce5e889729ad138fb445017ba20c401bc0f6b2d5790b5b232a3906784f1bfa4fec854334db3351c3a04b680db19f145cf1f226c
6
+ metadata.gz: e21147c8d7ce0d667d5a128a39552c1039508aeb58c1f5935a95269f108c15004509d0303234bdfd72373ecc348da6026a2af2cb0f2a6271c179629342e283e0
7
+ data.tar.gz: 2481de64b0dbe9c5e3d9b09f0f28a7ccd39f83d878dc8db5dbba17c12cc14f89c4e62ac9c3cc1767e20d540a05782bc93eca674c73a6a2b9462b1029146e629e
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- usps_flags (0.6.1)
4
+ usps_flags (0.6.2)
5
5
  file_utils (~> 1.1, >= 1.1.2)
6
6
  mini_magick (~> 4.9, >= 4.9.4)
7
7
  rubyzip (~> 1.3, >= 1.3.0)
@@ -10,8 +10,8 @@ class USPSFlags
10
10
  USPSFlags::Core::TridentSpecs::Build.new(fly: fly, unit: unit, scaled_border: scaled_border).svg
11
11
  end
12
12
 
13
- def self.intersection_spec(fly: 24, unit: 'in', scaled_border: false)
14
- USPSFlags::Core::TridentSpecs::Build.new(fly: fly, unit: unit, scaled_border: scaled_border).intersections
13
+ def self.intersection_spec(scaled_border: false)
14
+ USPSFlags::Core::TridentSpecs::BuildIntersections.new(scaled_border: scaled_border).svg
15
15
  end
16
16
 
17
17
  def self.headers(width: nil, height: nil, pennant: false, scale: nil, title: 'USPS Flag')
@@ -18,6 +18,7 @@ class USPSFlags
18
18
  require 'usps_flags/core/trident_specs/long'
19
19
  require 'usps_flags/core/trident_specs/circle'
20
20
  require 'usps_flags/core/trident_specs/build'
21
+ require 'usps_flags/core/trident_specs/build_intersections'
21
22
  end
22
23
  end
23
24
  end
@@ -24,17 +24,6 @@ class USPSFlags
24
24
  svg
25
25
  end
26
26
 
27
- def intersections
28
- # Static labeling
29
- @fly = Rational(2048, 5)
30
- @unit = ''
31
-
32
- svg = spec_header(no_measurements: true)
33
- svg << add_intersections
34
-
35
- svg
36
- end
37
-
38
27
  private
39
28
 
40
29
  def box_left
@@ -64,71 +53,6 @@ class USPSFlags
64
53
  add_trident(:Long, box_top, box_bottom, box_left, box_right)
65
54
  end
66
55
 
67
- def add_intersections
68
- svg = +''
69
-
70
- svg += "<g transform=\"translate(-#{BF * 1 / 16}, #{BH / 4}) scale(0.6)\">"
71
- svg += USPSFlags::Core::Tridents.cc(trident_color: :blue)
72
- svg += cc_label
73
- svg += '</g>'
74
-
75
- svg += "<g transform=\"translate(#{BF * 7 / 16}, #{BH / 4}) scale(0.6)\">"
76
- svg += USPSFlags::Core::Tridents.vc(trident_color: :red)
77
- svg += vc_label
78
- svg += '</g>'
79
-
80
- svg
81
- end
82
-
83
- def cc_label
84
- offset = BF.to_f * 1 / 32
85
- height = BF.to_f * 15 / 64
86
-
87
- small_arrow = SA.vertical(
88
- offset, -height / 3, 0,
89
- pointer_top: height / 3, pointer_bottom: 0, label_offset: BF / 35,
90
- label_offset_y: -BF / 50, label_align: 'middle', fly: @fly, unit: @unit
91
- )
92
-
93
- <<~SVG
94
- <!-- CC Intersection -->
95
- <g transform="translate(#{BF / 2}, #{BH - 200}) rotate(45)">
96
- #{big_arrow}
97
- #{small_arrow}
98
- </g>
99
- SVG
100
- end
101
-
102
- def vc_label
103
- offset = BF.to_f * 1 / 32
104
- height = BF.to_f * 15 / 64
105
-
106
- small_arrow = SA.vertical(
107
- offset, -height * 15 / 32, 0,
108
- pointer_top: height * 15 / 32, pointer_bottom: 0, label_offset: BF / 35,
109
- label_offset_y: -BF / 50, label_align: 'middle', fly: @fly, unit: @unit
110
- )
111
-
112
- <<~SVG
113
- <!-- CC Intersection -->
114
- <g transform="translate(#{BF / 2}, #{BH - 200}) rotate(45)">
115
- #{big_arrow}
116
- #{small_arrow}
117
- </g>
118
- SVG
119
- end
120
-
121
- def big_arrow
122
- offset = BF * 1 / 32
123
- height = BF * 15 / 64
124
-
125
- SA.vertical(
126
- offset * 3, -height, 0,
127
- pointer_top: height, pointer_bottom: 0, label_offset: BF / 60,
128
- label_offset_y: -BF / 10, label_align: 'left', fly: @fly, unit: @unit
129
- )
130
- end
131
-
132
56
  def configure_sizes(fly)
133
57
  @fly = Rational(fly)
134
58
  get_hoist_from_fly(@fly)
@@ -185,10 +109,10 @@ class USPSFlags
185
109
  end
186
110
  end
187
111
 
188
- def spec_header(no_measurements: false)
112
+ def spec_header
189
113
  USPSFlags::Core::TridentSpecs::Header.new(
190
114
  fly: @fly, fly_fraction: @fly_fraction, hoist: @hoist, hoist_fraction: @hoist_fraction,
191
- unit_text: @unit_text, scaled_border: @scaled_border, no_measurements: no_measurements
115
+ unit_text: @unit_text, scaled_border: @scaled_border
192
116
  ).p
193
117
  end
194
118
 
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: false
2
+
3
+ # Core SVG data for the trident intersections specification sheet.
4
+ #
5
+ # This class should never need to be called directly.
6
+ # @private
7
+ class USPSFlags
8
+ class Core
9
+ module TridentSpecs
10
+ class BuildIntersections
11
+ def initialize(scaled_border: false)
12
+ @scaled_border = scaled_border
13
+ configure_sizes(Rational(2048, 5))
14
+ configure_labels('')
15
+ end
16
+
17
+ def svg
18
+ svg = spec_header
19
+ svg << add_cc_intersection
20
+ svg << add_vc_intersection
21
+ svg
22
+ end
23
+
24
+ private
25
+
26
+ def add_cc_intersection
27
+ svg = +''
28
+
29
+ svg += "<g transform=\"translate(-#{BF * 1 / 16}, #{BH / 4}) scale(0.6)\">"
30
+ svg += USPSFlags::Core::Tridents.cc(trident_color: :blue)
31
+ svg += label('CC', Rational(1, 3))
32
+ svg += '</g>'
33
+
34
+ svg
35
+ end
36
+
37
+ def add_vc_intersection
38
+ svg = +''
39
+
40
+ svg += "<g transform=\"translate(#{BF * 7 / 16}, #{BH / 4}) scale(0.6)\">"
41
+ svg += USPSFlags::Core::Tridents.vc(trident_color: :red)
42
+ svg += label('VC', Rational(15, 32))
43
+ svg += '</g>'
44
+
45
+ svg
46
+ end
47
+
48
+ def label_offset
49
+ BF.to_f * 1 / 32
50
+ end
51
+
52
+ def label_height
53
+ BF.to_f * 15 / 64
54
+ end
55
+
56
+ def label(type, fraction)
57
+ <<~SVG
58
+ <!-- #{type} Intersection -->
59
+ <g transform="translate(#{BF / 2}, #{BH - 200}) rotate(45)">
60
+ #{big_arrow}
61
+ #{small_arrow(fraction)}
62
+ </g>
63
+ SVG
64
+ end
65
+
66
+ def small_arrow(fraction)
67
+ SA.vertical(
68
+ label_offset, -label_height * fraction, 0,
69
+ pointer_top: label_height * fraction, pointer_bottom: 0, label_offset: BF / 35,
70
+ label_offset_y: -BF / 50, label_align: 'middle', fly: @fly, unit: @unit
71
+ )
72
+ end
73
+
74
+ def big_arrow
75
+ SA.vertical(
76
+ label_offset * 3, -label_height, 0,
77
+ pointer_top: label_height, pointer_bottom: 0, label_offset: BF / 60,
78
+ label_offset_y: -BF / 10, label_align: 'left', fly: @fly, unit: @unit
79
+ )
80
+ end
81
+
82
+ def configure_sizes(fly)
83
+ @fly = Rational(fly)
84
+ get_hoist_from_fly(@fly)
85
+ configure_hoist_fraction
86
+ configure_fly_fraction
87
+ end
88
+
89
+ def get_hoist_from_fly(fly)
90
+ hoist = (fly * Rational(2, 3))
91
+ @hoist = hoist
92
+ end
93
+
94
+ def configure_hoist_fraction
95
+ @hoist, @hoist_fraction = USPSFlags::Rational.new(@hoist).to_simplified_a
96
+ end
97
+
98
+ def configure_fly_fraction
99
+ @fly, @fly_fraction = USPSFlags::Rational.new(@fly).to_simplified_a
100
+ end
101
+
102
+ def configure_labels(unit)
103
+ @label_font_size = BF / 60
104
+
105
+ @unit_text = unit.nil? ? '' : unit.to_s
106
+ @unit = unit
107
+ end
108
+
109
+ def spec_header
110
+ USPSFlags::Core::TridentSpecs::Header.new(
111
+ fly: @fly, fly_fraction: @fly_fraction, hoist: @hoist, hoist_fraction: @hoist_fraction,
112
+ unit_text: @unit_text, scaled_border: @scaled_border, no_measurements: true
113
+ ).p
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
@@ -110,10 +110,10 @@ class USPSFlags
110
110
  # @param [String] outfile The unit to append to all trident measurements.
111
111
  # @param [String] scale The image scale divisor factor.
112
112
  # @return [String] Returns the SVG data.
113
- def intersection_spec(outfile: nil, fly: USPSFlags::Config::BASE_FLY, unit: nil, scale: nil, scaled_border: false)
113
+ def intersection_spec(outfile: nil, scale: nil, scaled_border: false)
114
114
  svg = +''
115
115
  svg << USPSFlags::Core.headers(scale: scale, title: 'USPS Trident Specifications')
116
- svg << USPSFlags::Core.intersection_spec(fly: fly, unit: unit, scaled_border: scaled_border)
116
+ svg << USPSFlags::Core.intersection_spec(scaled_border: scaled_border)
117
117
  svg << USPSFlags::Core.footer
118
118
 
119
119
  USPSFlags::Helpers.output(svg, outfile: outfile)
@@ -2,8 +2,8 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'usps_flags'
5
- s.version = '0.6.1'
6
- s.date = '2020-08-03'
5
+ s.version = '0.6.2'
6
+ s.date = '2020-08-04'
7
7
  s.summary = 'Flag generator for United States Power Squadrons'
8
8
  s.description = 'A flag image (PNG, SVG) generator for United States Power Squadrons.'
9
9
  s.homepage = 'http://rubygems.org/gems/usps_flags'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usps_flags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Fiander
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-03 00:00:00.000000000 Z
11
+ date: 2020-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: file_utils
@@ -194,7 +194,6 @@ files:
194
194
  - lib/usps_flags/config.rb
195
195
  - lib/usps_flags/configuration.rb
196
196
  - lib/usps_flags/core.rb
197
- - lib/usps_flags/core/CC.svg
198
197
  - lib/usps_flags/core/ensign.rb
199
198
  - lib/usps_flags/core/field.rb
200
199
  - lib/usps_flags/core/footer.rb
@@ -211,6 +210,7 @@ files:
211
210
  - lib/usps_flags/core/trident_specs.rb
212
211
  - lib/usps_flags/core/trident_specs/base.rb
213
212
  - lib/usps_flags/core/trident_specs/build.rb
213
+ - lib/usps_flags/core/trident_specs/build_intersections.rb
214
214
  - lib/usps_flags/core/trident_specs/circle.rb
215
215
  - lib/usps_flags/core/trident_specs/delta.rb
216
216
  - lib/usps_flags/core/trident_specs/header.rb
@@ -263,8 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
263
  - !ruby/object:Gem::Version
264
264
  version: '0'
265
265
  requirements: []
266
- rubyforge_project:
267
- rubygems_version: 2.7.6
266
+ rubygems_version: 3.1.4
268
267
  signing_key:
269
268
  specification_version: 4
270
269
  summary: Flag generator for United States Power Squadrons
@@ -1,125 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
3
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="1024" height="682" viewBox="-3.072 -4.096 3084.288 2058.24" preserveAspectRatio="xMidYMid meet">
4
- <title>CC</title>
5
- <metadata>
6
- <desc id="created-by">Julian Fiander</desc>
7
- <desc id="generated-at">20200216.1756-0500</desc>
8
- <desc id="trademark-desc">This image is a registered trademark of United States Power Squadrons.</desc>
9
- <desc id="trademark-link">https://www.usps.org/images/secretary/itcom/trademark.pdf</desc>
10
- </metadata><path d="M 0 0
11
- l 3072 0
12
- l 0 2048
13
- l -3072 0
14
- l 0 -2048 z
15
- " fill="#012169" />
16
- <g transform="translate(-354, 236)">
17
- <g transform="rotate(-45, 1536, 1024)">
18
- <path d="M 1536 256
19
- l 80 184
20
- l -40 -24
21
- l 0 1376
22
- l -80 0
23
- l 0 -1376
24
- l -40 24
25
- l 80 -184
26
- " fill="#FFFFFF" />
27
- <path d="M 1296 784
28
- l 480 0
29
- l 0 80
30
- l -480 0
31
- l 0 -80
32
- " fill="#FFFFFF" />
33
- <path d="M 1296 785
34
- l 0 -464
35
- l 120 168
36
- l -40 0
37
- l 0 296
38
- " fill="#FFFFFF" />
39
- <path d="M 1776 785
40
- l 0 -464
41
- l -120 168
42
- l 40 0
43
- l 0 296
44
- " fill="#FFFFFF" />
45
- <path d="M 1400 944
46
- l 273 0
47
- l 0 80
48
- l -273 0
49
- l 0 -80
50
- " fill="#FFFFFF" />
51
- </g>
52
- </g>
53
-
54
- <path d="M 1536 256
55
- l 80 184
56
- l -40 -24
57
- l 0 1376
58
- l -80 0
59
- l 0 -1376
60
- l -40 24
61
- l 80 -184
62
- " fill="#FFFFFF" />
63
- <path d="M 1296 784
64
- l 480 0
65
- l 0 80
66
- l -480 0
67
- l 0 -80
68
- " fill="#FFFFFF" />
69
- <path d="M 1296 785
70
- l 0 -464
71
- l 120 168
72
- l -40 0
73
- l 0 296
74
- " fill="#FFFFFF" />
75
- <path d="M 1776 785
76
- l 0 -464
77
- l -120 168
78
- l 40 0
79
- l 0 296
80
- " fill="#FFFFFF" />
81
- <path d="M 1400 944
82
- l 273 0
83
- l 0 80
84
- l -273 0
85
- l 0 -80
86
- " fill="#FFFFFF" />
87
-
88
- <g transform="translate(354, 236)">
89
- <g transform="rotate(45, 1536, 1024)">
90
- <path d="M 1536 256
91
- l 80 184
92
- l -40 -24
93
- l 0 1376
94
- l -80 0
95
- l 0 -1376
96
- l -40 24
97
- l 80 -184
98
- " fill="#FFFFFF" />
99
- <path d="M 1296 784
100
- l 480 0
101
- l 0 80
102
- l -480 0
103
- l 0 -80
104
- " fill="#FFFFFF" />
105
- <path d="M 1296 785
106
- l 0 -464
107
- l 120 168
108
- l -40 0
109
- l 0 296
110
- " fill="#FFFFFF" />
111
- <path d="M 1776 785
112
- l 0 -464
113
- l -120 168
114
- l 40 0
115
- l 0 296
116
- " fill="#FFFFFF" />
117
- <path d="M 1400 944
118
- l 273 0
119
- l 0 80
120
- l -273 0
121
- l 0 -80
122
- " fill="#FFFFFF" />
123
- </g>
124
- </g>
125
- </svg>