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.
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