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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: false
2
+
1
3
  # Container class for helper methods.
2
4
  class USPSFlags::Helpers
3
5
  class << self
@@ -30,11 +32,12 @@ class USPSFlags::Helpers
30
32
  def resize_png(png_file, file: nil, outfile: nil, size:, size_key: nil)
31
33
  raise USPSFlags::Errors::PNGConversionError if outfile.nil? && file.nil?
32
34
  raise USPSFlags::Errors::PNGConversionError if outfile.nil? && size_key.nil?
35
+
33
36
  output_file_name = outfile || "#{USPSFlags.configuration.flags_dir}/PNG/#{file}.#{size_key}.png"
34
37
  MiniMagick::Tool::Convert.new do |convert|
35
- convert << "-background" << "none"
36
- convert << "-format" << "png"
37
- convert << "-resize" << "#{size}"
38
+ convert << '-background' << 'none'
39
+ convert << '-format' << 'png'
40
+ convert << '-resize' << "#{size}"
38
41
  convert << png_file
39
42
  convert << output_file_name
40
43
  end
@@ -67,7 +70,7 @@ class USPSFlags::Helpers
67
70
  # This is used USPSFlags::Generate, and should never need to be called directly.
68
71
  # @private
69
72
  def png_sizes
70
- {1500 => "H", 1000 => "K", 500 => "D", "thumb" => "T"}
73
+ { 1500 => 'H', 1000 => 'K', 500 => 'D', 'thumb' => 'T' }
71
74
  end
72
75
 
73
76
  # Gets size key for saving PNG images.
@@ -75,18 +78,18 @@ class USPSFlags::Helpers
75
78
  # This is used USPSFlags::Generate, and should never need to be called directly.
76
79
  # @private
77
80
  def size_and_key(size:, flag:)
78
- return [size, size] unless size == "thumb"
81
+ return [size, size] unless size == 'thumb'
79
82
 
80
83
  size = case flag
81
- when "ENSIGN"
82
- 200
83
- when "US"
84
- 300
85
- else
86
- 150
84
+ when 'ENSIGN'
85
+ 200
86
+ when 'US'
87
+ 300
88
+ else
89
+ 150
87
90
  end
88
91
 
89
- [size, "thumb"]
92
+ [size, 'thumb']
90
93
  end
91
94
 
92
95
  # Prints message(s) to the console and logs them.
@@ -114,11 +117,11 @@ class USPSFlags::Helpers
114
117
  # This should never need to be called directly.
115
118
  # @private
116
119
  def ensure_dir_for_file(path)
117
- return false if path.nil? || path.empty? || !path.scan("/")
120
+ return false if path.nil? || path.empty? || !path.scan('/')
118
121
 
119
- dirs = path.split("/")
122
+ dirs = path.split('/')
120
123
  dirs.pop
121
- ::FileUtils.mkdir_p(dirs.join("/")).first
124
+ ::FileUtils.mkdir_p(dirs.join('/')).first
122
125
  end
123
126
 
124
127
  # Prints output to the console or saves to a file, then returns the generated data.
@@ -128,16 +131,17 @@ class USPSFlags::Helpers
128
131
  def output(svg, outfile: nil)
129
132
  if outfile.nil?
130
133
  puts svg, "\n"
131
- elsif outfile != ""
134
+ elsif outfile != ''
132
135
  ensure_dir_for_file(outfile)
133
- f = ::File.new(outfile, "w+")
136
+ f = ::File.new(outfile, 'w+')
134
137
  f.write(svg)
135
138
  f.close
136
139
  end
137
140
  svg
138
141
  end
139
142
 
140
- private
143
+ private
144
+
141
145
  def load_valid_flags
142
146
  @squadron_past = %w[PLTC PC]
143
147
  @squadron_elected = %w[1LT LTC CDR]
@@ -148,7 +152,7 @@ class USPSFlags::Helpers
148
152
  @national_past = %w[PSTFC PRC PVC PCC]
149
153
  @national_elected = %w[STFC RC VC CC]
150
154
  @national_swallowtail = %w[NAIDE NFLT]
151
- @special = %w[CRUISE OIC ENSIGN WHEEL]
155
+ @special = %w[CRUISE OIC ENSIGN] # WHEEL
152
156
  @us = %w[US]
153
157
 
154
158
  @past = @squadron_past + @district_past + @national_past
@@ -173,65 +177,50 @@ class USPSFlags::Helpers
173
177
  insignia: @officer - @past,
174
178
  swallowtail: @past + @squadron_swallowtail + @district_swallowtail + @national_swallowtail,
175
179
 
176
- bridge: @squadron_elected.last(2) + @squadron_past.last(2) +
177
- @district_elected.last(2) + @district_past.last(2) +
180
+ bridge: @squadron_elected.last(2) + @squadron_past.last(2) +
181
+ @district_elected.last(2) + @district_past.last(2) +
178
182
  @national_elected.last(2) + @national_past.last(2),
179
183
 
180
184
  command: [@squadron_elected.last, @squadron_past.last,
181
- @district_elected.last, @district_past.last,
182
- @national_elected.last, @national_past.last]
185
+ @district_elected.last, @district_past.last,
186
+ @national_elected.last, @national_past.last]
183
187
  }[type]
184
188
  end
185
189
 
186
190
  def flag_style(rank)
187
- if valid_flags(:past).include?(rank)
188
- :past
189
- elsif valid_flags(:swallowtail).include?(rank)
190
- :swallowtail
191
- else
192
- :regular
193
- end
191
+ return :past if valid_flags(:past).include?(rank)
192
+ return :swallowtail if valid_flags(:swallowtail).include?(rank)
193
+
194
+ :regular
194
195
  end
195
196
 
196
197
  def flag_color(rank)
197
- if valid_flags(:command).include?(rank)
198
- count = 3
199
- :blue
200
- elsif valid_flags(:bridge).include?(rank)
201
- count = 2
202
- :red
203
- else
204
- :white
205
- end
198
+ return :blue if valid_flags(:command).include?(rank)
199
+ return :red if valid_flags(:bridge).include?(rank)
200
+
201
+ :white
206
202
  end
207
203
 
208
204
  def flag_level(rank)
209
- if rank.match /N.*/
210
- :n
211
- elsif rank.match /D.*/
212
- :d
213
- elsif rank == "FLT"
214
- :s
215
- end
205
+ return :n if rank.match? /N.*/
206
+ return :d if rank.match? /D.*/
207
+ return :s if rank == 'FLT'
216
208
  end
217
209
 
218
210
  def flag_count(rank)
219
- if valid_flags(:command).include?(rank)
220
- 3
221
- elsif valid_flags(:bridge).include?(rank)
222
- 2
223
- else
224
- 1
225
- end
211
+ return 3 if valid_flags(:command).include?(rank)
212
+ return 2 if valid_flags(:bridge).include?(rank)
213
+
214
+ 1
226
215
  end
227
216
 
228
217
  def flag_type(rank) # Complexity
229
- specifics = {"PORTCAP" => :pc, "FLEETCAP" => :fc, "STFC" => :stf}
218
+ specifics = { 'PORTCAP' => :pc, 'FLEETCAP' => :fc, 'STFC' => :stf }
230
219
  if specifics.keys.include?(rank)
231
220
  specifics[rank]
232
- elsif rank.match /.AIDE/
221
+ elsif rank.match? /.AIDE/
233
222
  :a
234
- elsif rank.match /.?FLT/
223
+ elsif rank.match? /.?FLT/
235
224
  :f
236
225
  else
237
226
  get_line_flag_level(rank)
@@ -239,13 +228,9 @@ class USPSFlags::Helpers
239
228
  end
240
229
 
241
230
  def get_line_flag_level(rank)
242
- if valid_flags(:squadron).include?(rank)
243
- :s
244
- elsif valid_flags(:district).include?(rank)
245
- :d
246
- elsif valid_flags(:national).include?(rank)
247
- :n
248
- end
231
+ return :s if valid_flags(:squadron).include?(rank)
232
+ return :d if valid_flags(:district).include?(rank)
233
+ return :n if valid_flags(:national).include?(rank)
249
234
  end
250
235
  end
251
236
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: false
2
+
1
3
  # SVG building helpers.
2
4
  #
3
5
  # These methods should never need to be called directly, except when designing new flags.
@@ -10,38 +12,38 @@ class USPSFlags::Helpers::Builders
10
12
  # @private
11
13
  def grid(width: USPSFlags::Config::BASE_FLY, height: USPSFlags::Config::BASE_HOIST)
12
14
  <<~SVG
13
- <circle cx="0" cy="0" r="#{width/60}" fill="#000000" fill-opacity="0.4" />
14
- <circle cx="#{width}" cy="0" r="#{width/60}" fill="#000000" fill-opacity="0.4" />
15
- <circle cx="#{width}" cy="#{height}" r="#{width/60}" fill="#000000" fill-opacity="0.4" />
16
- <circle cx="0" cy="#{height}" r="#{width/60}" fill="#000000" fill-opacity="0.4" />
15
+ <circle cx="0" cy="0" r="#{width / 60}" fill="#000000" fill-opacity="0.4" />
16
+ <circle cx="#{width}" cy="0" r="#{width / 60}" fill="#000000" fill-opacity="0.4" />
17
+ <circle cx="#{width}" cy="#{height}" r="#{width / 60}" fill="#000000" fill-opacity="0.4" />
18
+ <circle cx="0" cy="#{height}" r="#{width / 60}" fill="#000000" fill-opacity="0.4" />
17
19
 
18
- <circle cx="#{width*1/4}" cy="#{height/2}" r="#{width/60}" fill="#999999" fill-opacity="0.4" />
19
- <circle cx="#{width*3/4}" cy="#{height/2}" r="#{width/60}" fill="#999999" fill-opacity="0.4" />
20
+ <circle cx="#{width * 1 / 4}" cy="#{height / 2}" r="#{width / 60}" fill="#999999" fill-opacity="0.4" />
21
+ <circle cx="#{width * 3 / 4}" cy="#{height / 2}" r="#{width / 60}" fill="#999999" fill-opacity="0.4" />
20
22
 
21
- <circle cx="#{width/2}" cy="#{height*1/4}" r="#{width/60}" fill="#999999" fill-opacity="0.4" />
22
- <circle cx="#{width/2}" cy="#{height/2}" r="#{width/60}" fill="#000000" fill-opacity="0.4" />
23
- <circle cx="#{width/2}" cy="#{height/2}" r="#{width/75}" fill="#CCCCCC" fill-opacity="0.4" />
24
- <circle cx="#{width/2}" cy="#{height/2}" r="#{width/100}" fill="#000000" fill-opacity="0.4" />
25
- <circle cx="#{width/2}" cy="#{height*3/4}" r="#{width/60}" fill="#999999" fill-opacity="0.4" />
23
+ <circle cx="#{width / 2}" cy="#{height * 1 / 4}" r="#{width / 60}" fill="#999999" fill-opacity="0.4" />
24
+ <circle cx="#{width / 2}" cy="#{height / 2}" r="#{width / 60}" fill="#000000" fill-opacity="0.4" />
25
+ <circle cx="#{width / 2}" cy="#{height / 2}" r="#{width / 75}" fill="#CCCCCC" fill-opacity="0.4" />
26
+ <circle cx="#{width / 2}" cy="#{height / 2}" r="#{width / 100}" fill="#000000" fill-opacity="0.4" />
27
+ <circle cx="#{width / 2}" cy="#{height * 3 / 4}" r="#{width / 60}" fill="#999999" fill-opacity="0.4" />
26
28
 
27
- <line x1="0" y1="0" x2="#{width}" y2="0" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
28
- <line x1="0" y1="#{height*1/4}" x2="#{width}" y2="#{height*1/4}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
29
- <line x1="0" y1="#{height/2}" x2="#{width}" y2="#{height/2}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
30
- <line x1="0" y1="#{height*3/4}" x2="#{width}" y2="#{height*3/4}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
31
- <line x1="0" y1="#{height}" x2="#{width}" y2="#{height}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
29
+ <line x1="0" y1="0" x2="#{width}" y2="0" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
30
+ <line x1="0" y1="#{height * 1 / 4}" x2="#{width}" y2="#{height * 1 / 4}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
31
+ <line x1="0" y1="#{height / 2}" x2="#{width}" y2="#{height / 2}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
32
+ <line x1="0" y1="#{height * 3 / 4}" x2="#{width}" y2="#{height * 3 / 4}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
33
+ <line x1="0" y1="#{height}" x2="#{width}" y2="#{height}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
32
34
 
33
- <line y1="0" x1="0" y2="#{height}" x2="0" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
34
- <line y1="0" x1="#{width*1/6}" y2="#{height}" x2="#{width*1/6}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
35
- <line y1="0" x1="#{width*2/6}" y2="#{height}" x2="#{width*2/6}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
36
- <line y1="0" x1="#{width*3/6}" y2="#{height}" x2="#{width*3/6}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
37
- <line y1="0" x1="#{width*4/6}" y2="#{height}" x2="#{width*4/6}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
38
- <line y1="0" x1="#{width*5/6}" y2="#{height}" x2="#{width*5/6}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
39
- <line y1="0" x1="#{width}" y2="#{height}" x2="#{width}" stroke="#333333" stroke-width="#{width/600}" stroke-opacity="0.5" />
35
+ <line y1="0" x1="0" y2="#{height}" x2="0" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
36
+ <line y1="0" x1="#{width * 1 / 6}" y2="#{height}" x2="#{width * 1 / 6}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
37
+ <line y1="0" x1="#{width * 2 / 6}" y2="#{height}" x2="#{width * 2 / 6}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
38
+ <line y1="0" x1="#{width * 3 / 6}" y2="#{height}" x2="#{width * 3 / 6}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
39
+ <line y1="0" x1="#{width * 4 / 6}" y2="#{height}" x2="#{width * 4 / 6}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
40
+ <line y1="0" x1="#{width * 5 / 6}" y2="#{height}" x2="#{width * 5 / 6}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
41
+ <line y1="0" x1="#{width}" y2="#{height}" x2="#{width}" stroke="#333333" stroke-width="#{width / 600}" stroke-opacity="0.5" />
40
42
 
41
- <line x1="#{width/2}" y1="#{height*1/4}" x2="#{width*3/4}" y2="#{height/2}" stroke="#999999" stroke-width="#{width/600}" stroke-opacity="0.5" />
42
- <line x1="#{width*3/4}" y1="#{height/2}" x2="#{width/2}" y2="#{height*3/4}" stroke="#999999" stroke-width="#{width/600}" stroke-opacity="0.5" />
43
- <line x1="#{width/2}" y1="#{height*3/4}" x2="#{width*1/4}" y2="#{height/2}" stroke="#999999" stroke-width="#{width/600}" stroke-opacity="0.5" />
44
- <line x1="#{width*1/4}" y1="#{height/2}" x2="#{width/2}" y2="#{height*1/4}" stroke="#999999" stroke-width="#{width/600}" stroke-opacity="0.5" />
43
+ <line x1="#{width / 2}" y1="#{height * 1 / 4}" x2="#{width * 3 / 4}" y2="#{height / 2}" stroke="#999999" stroke-width="#{width / 600}" stroke-opacity="0.5" />
44
+ <line x1="#{width * 3 / 4}" y1="#{height / 2}" x2="#{width / 2}" y2="#{height * 3 / 4}" stroke="#999999" stroke-width="#{width / 600}" stroke-opacity="0.5" />
45
+ <line x1="#{width / 2}" y1="#{height * 3 / 4}" x2="#{width * 1 / 4}" y2="#{height / 2}" stroke="#999999" stroke-width="#{width / 600}" stroke-opacity="0.5" />
46
+ <line x1="#{width * 1 / 4}" y1="#{height / 2}" x2="#{width / 2}" y2="#{height * 1 / 4}" stroke="#999999" stroke-width="#{width / 600}" stroke-opacity="0.5" />
45
47
 
46
48
  SVG
47
49
  end
@@ -52,19 +54,19 @@ class USPSFlags::Helpers::Builders
52
54
  # @private
53
55
  def locator
54
56
  <<~SVG
55
- <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY*2}" fill="#000000" fill-opacity="0.4" />
57
+ <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY * 2}" fill="#000000" fill-opacity="0.4" />
56
58
  <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY}" fill="#333333" fill-opacity="0.4" />
57
- <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY/2}" fill="#666666" fill-opacity="0.4" />
58
- <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY/4}" fill="#999999" fill-opacity="0.4" />
59
- <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY/8}" fill="#CCCCCC" fill-opacity="0.4" />
60
- <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY/16}" fill="#FFFFFF" fill-opacity="0.4" />
59
+ <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY / 2}" fill="#666666" fill-opacity="0.4" />
60
+ <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY / 4}" fill="#999999" fill-opacity="0.4" />
61
+ <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY / 8}" fill="#CCCCCC" fill-opacity="0.4" />
62
+ <circle cx="0" cy="0" r="#{USPSFlags::Config::BASE_FLY / 16}" fill="#FFFFFF" fill-opacity="0.4" />
61
63
 
62
- <line x1="-#{USPSFlags::Config::BASE_FLY}" y1="-#{USPSFlags::Config::BASE_HOIST}" x2="#{USPSFlags::Config::BASE_FLY}" y2="#{USPSFlags::Config::BASE_HOIST}" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
63
- <line x1="-#{USPSFlags::Config::BASE_FLY}" y1="#{USPSFlags::Config::BASE_HOIST}" x2="#{USPSFlags::Config::BASE_FLY}" y2="-#{USPSFlags::Config::BASE_HOIST}" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
64
- <line x1="0" y1="#{USPSFlags::Config::BASE_HOIST}" x2="0" y2="-#{USPSFlags::Config::BASE_HOIST}" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
65
- <line x1="-#{USPSFlags::Config::BASE_FLY}" y1="0" x2="#{USPSFlags::Config::BASE_FLY}" y2="0" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY/600}" />
64
+ <line x1="-#{USPSFlags::Config::BASE_FLY}" y1="-#{USPSFlags::Config::BASE_HOIST}" x2="#{USPSFlags::Config::BASE_FLY}" y2="#{USPSFlags::Config::BASE_HOIST}" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY / 600}" />
65
+ <line x1="-#{USPSFlags::Config::BASE_FLY}" y1="#{USPSFlags::Config::BASE_HOIST}" x2="#{USPSFlags::Config::BASE_FLY}" y2="-#{USPSFlags::Config::BASE_HOIST}" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY / 600}" />
66
+ <line x1="0" y1="#{USPSFlags::Config::BASE_HOIST}" x2="0" y2="-#{USPSFlags::Config::BASE_HOIST}" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY / 600}" />
67
+ <line x1="-#{USPSFlags::Config::BASE_FLY}" y1="0" x2="#{USPSFlags::Config::BASE_FLY}" y2="0" stroke="#FFFFFF" stroke-width="#{USPSFlags::Config::BASE_FLY / 600}" />
66
68
 
67
- <rect x="0" y="0" width="#{USPSFlags::Config::BASE_FLY/30}" height="#{USPSFlags::Config::BASE_FLY/30}" fill="#333333" fill-opacity="0.6" />
69
+ <rect x="0" y="0" width="#{USPSFlags::Config::BASE_FLY / 30}" height="#{USPSFlags::Config::BASE_FLY / 30}" fill="#333333" fill-opacity="0.6" />
68
70
  SVG
69
71
  end
70
72
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: false
2
+
1
3
  # Trident specification sheet arrows.
2
4
  #
3
5
  # These methods should never need to be called directly.
@@ -8,10 +10,10 @@ class USPSFlags::Helpers::SpecArrows
8
10
  #
9
11
  # This is used USPSFlags::Core.trident_spec, and should never need to be called directly.
10
12
  # @private
11
- def vertical(x, top, bottom, pointer_top = nil, pointer_bottom = nil, fly: nil, unit: nil, label_offset: (USPSFlags::Config::BASE_FLY/120), label_offset_y: 0, label_align: "left")
13
+ def vertical(x, top, bottom, pointer_top = nil, pointer_bottom = nil, fly: nil, unit: nil, label_offset: (USPSFlags::Config::BASE_FLY / 120), label_offset_y: 0, label_align: 'left')
12
14
  load_common_config(fly)
13
15
  label, label_fraction = get_labels(bottom, top)
14
- svg = ""
16
+ svg = ''
15
17
 
16
18
  svg << arrow_pointer(x, pointer_top, top, top) unless pointer_top.nil?
17
19
  svg << arrow_pointer(x, pointer_bottom, bottom, bottom) unless pointer_bottom.nil?
@@ -20,7 +22,7 @@ class USPSFlags::Helpers::SpecArrows
20
22
  <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" />
21
23
  <g>
22
24
  <style><![CDATA[tspan{font-size: #{USPSFlags::Config::FRACTION_SCALE}%;}]]></style>
23
- <text x="#{x + label_offset}" y="#{(top+bottom)/2+(USPSFlags::Config::BASE_HOIST/150)+label_offset_y}" font-family="sans-serif" font-size="#{@font_size}px" fill="#041E42" text-anchor="#{label_align}">#{label} <tspan>#{label_fraction}</tspan> #{unit}</text>
25
+ <text x="#{x + label_offset}" y="#{(top + bottom) / 2 + (USPSFlags::Config::BASE_HOIST / 150) + label_offset_y}" font-family="sans-serif" font-size="#{@font_size}px" fill="#041E42" text-anchor="#{label_align}">#{label} <tspan>#{label_fraction}</tspan> #{unit}</text>
24
26
  </g>
25
27
  SVG
26
28
 
@@ -31,10 +33,10 @@ class USPSFlags::Helpers::SpecArrows
31
33
  #
32
34
  # This is used USPSFlags::Core.trident_spec, and should never need to be called directly.
33
35
  # @private
34
- def horizontal(y, left, right, pointer_left = nil, pointer_right = nil, fly: nil, unit: nil, label_offset: (USPSFlags::Config::BASE_FLY/45), label_offset_x: 0, label_align: "middle")
36
+ def horizontal(y, left, right, pointer_left = nil, pointer_right = nil, fly: nil, unit: nil, label_offset: (USPSFlags::Config::BASE_FLY / 45), label_offset_x: 0, label_align: 'middle')
35
37
  load_common_config(fly)
36
38
  label, label_fraction = get_labels(right, left)
37
- svg = ""
39
+ svg = ''
38
40
 
39
41
  svg << arrow_pointer(left, left, pointer_left, y) unless pointer_left.nil?
40
42
  svg << arrow_pointer(right, right, y, pointer_right) unless pointer_right.nil?
@@ -43,20 +45,21 @@ class USPSFlags::Helpers::SpecArrows
43
45
  <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" />
44
46
  <g>
45
47
  <style><![CDATA[tspan{font-size: #{USPSFlags::Config::FRACTION_SCALE}%;}]]></style>
46
- <text x="#{(left+right)/2+label_offset_x}" y="#{y + label_offset}" font-family="sans-serif" font-size="#{@font_size}px" fill="#041E42" text-anchor="#{label_align}">#{label} <tspan>#{label_fraction}</tspan> #{unit}</text>
48
+ <text x="#{(left + right) / 2 + label_offset_x}" y="#{y + label_offset}" font-family="sans-serif" font-size="#{@font_size}px" fill="#041E42" text-anchor="#{label_align}">#{label} <tspan>#{label_fraction}</tspan> #{unit}</text>
47
49
  </g>
48
50
  SVG
49
51
 
50
52
  svg
51
53
  end
52
54
 
53
- private
55
+ private
56
+
54
57
  def load_common_config(fly)
55
- @color = "#CCCCCC"
56
- @stroke_width = (USPSFlags::Config::BASE_FLY/600)
57
- @stroke_dash = "10, 10"
58
- @font_size = (USPSFlags::Config::BASE_FLY/60)
59
- @arrow_size = (USPSFlags::Config::BASE_FLY/120)
58
+ @color = '#CCCCCC'
59
+ @stroke_width = (USPSFlags::Config::BASE_FLY / 600)
60
+ @stroke_dash = '10, 10'
61
+ @font_size = (USPSFlags::Config::BASE_FLY / 60)
62
+ @arrow_size = (USPSFlags::Config::BASE_FLY / 120)
60
63
  @fly = fly || USPSFlags::Config::BASE_FLY
61
64
  end
62
65
 
@@ -70,7 +73,7 @@ class USPSFlags::Helpers::SpecArrows
70
73
  label = (a - b) * Rational(@fly, USPSFlags::Config::BASE_FLY)
71
74
  if label == label.to_i
72
75
  label = label.to_i
73
- label_fraction = ""
76
+ label_fraction = ''
74
77
  else
75
78
  label, label_fraction = label.to_simplified_a
76
79
  end
@@ -1,17 +1,19 @@
1
+ # frozen_string_literal: false
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Rational do
4
- describe "monkey patches" do
5
- it "should render a simplified fraction as an Array" do
6
- expect(Rational(4,3).to_simplified_a).to eql([1, Rational(1,3)])
6
+ describe 'monkey patches' do
7
+ it 'should render a simplified fraction as an Array' do
8
+ expect(Rational(4, 3).to_simplified_a).to eql([1, Rational(1, 3)])
7
9
  end
8
10
 
9
- it "should render a proper fraction as String" do
10
- expect(Rational(2,3).to_simplified_a).to eql("2/3")
11
+ it 'should render a proper fraction as String' do
12
+ expect(Rational(2, 3).to_simplified_a).to eql('2/3')
11
13
  end
12
14
 
13
- it "should render a simplified fraction as a String" do
14
- expect(Rational(4,3).to_simplified_s).to eql("1 1/3")
15
+ it 'should render a simplified fraction as a String' do
16
+ expect(Rational(4, 3).to_simplified_s).to eql('1 1/3')
15
17
  end
16
18
  end
17
19
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: false
2
+
1
3
  require 'bundler/setup'
2
4
  Bundler.setup
3
5
  require 'simplecov'
@@ -10,8 +12,8 @@ RSpec::Expectations.configuration.on_potential_false_positives = :nothing
10
12
 
11
13
  RSpec.configure do |config|
12
14
  config.before(:suite) do
13
- $tmp_flags_dir = "tmp/flags"
14
- $tmp_alt_flags_dir = "tmp/alt_flags"
15
+ $tmp_flags_dir = 'tmp/flags'
16
+ $tmp_alt_flags_dir = 'tmp/alt_flags'
15
17
 
16
18
  USPSFlags.configure do |c|
17
19
  c.flags_dir = $tmp_flags_dir
@@ -20,6 +22,6 @@ RSpec.configure do |config|
20
22
  end
21
23
 
22
24
  config.after(:suite) do
23
- ::FileUtils.rm_rf("tmp") if ::Dir.exist?("tmp")
25
+ ::FileUtils.rm_rf('tmp') if ::Dir.exist?('tmp')
24
26
  end
25
27
  end
@@ -1,29 +1,31 @@
1
+ # frozen_string_literal: false
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe USPSFlags::Config do
4
- describe "class variable accessors" do
5
- it "should return the current flags directory" do
6
+ describe 'class variable accessors' do
7
+ it 'should return the current flags directory' do
6
8
  expect(USPSFlags.configuration.flags_dir).to eql($tmp_flags_dir)
7
9
  end
8
10
 
9
- it "should return the current flags directory" do
10
- default_log_path = $tmp_flags_dir + "/log"
11
+ it 'should return the current flags directory' do
12
+ default_log_path = $tmp_flags_dir + '/log'
11
13
  expect(USPSFlags.configuration.log_path).to eql(default_log_path)
12
14
  end
13
15
 
14
- it "should return a Boolean from clear" do
16
+ it 'should return a Boolean from clear' do
15
17
  expect([true, false]).to include(USPSFlags.configuration.clear)
16
18
  end
17
19
  end
18
20
 
19
- describe "trident" do
20
- it "should return a Hash from trident" do
21
+ describe 'trident' do
22
+ it 'should return a Hash from trident' do
21
23
  expect(USPSFlags.configuration.trident).to be_a(Hash)
22
24
  end
23
25
  end
24
26
 
25
- describe "configuration constructor" do
26
- it "should return a properly constructed configuration" do
27
+ describe 'configuration constructor' do
28
+ it 'should return a properly constructed configuration' do
27
29
  USPSFlags.configure do |config|
28
30
  config.flags_dir = $tmp_flags_dir
29
31
  end
@@ -33,11 +35,11 @@ describe USPSFlags::Config do
33
35
  end
34
36
  end
35
37
 
36
- describe "Rails configuration" do
38
+ describe 'Rails configuration' do
37
39
  before(:each) do
38
40
  class Rails
39
41
  def self.root
40
- "tmp/rails_app"
42
+ 'tmp/rails_app'
41
43
  end
42
44
  end
43
45
 
@@ -46,8 +48,8 @@ describe USPSFlags::Config do
46
48
  end
47
49
  end
48
50
 
49
- it "should use the default Rails log directory" do
50
- expect(@config.log_path).to eql("tmp/rails_app/log")
51
+ it 'should use the default Rails log directory' do
52
+ expect(@config.log_path).to eql('tmp/rails_app/log')
51
53
  end
52
54
  end
53
55
  end