fontisan 0.2.4 → 0.2.6

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +168 -32
  3. data/README.adoc +673 -1091
  4. data/lib/fontisan/cli.rb +94 -13
  5. data/lib/fontisan/collection/dfont_builder.rb +315 -0
  6. data/lib/fontisan/commands/convert_command.rb +118 -7
  7. data/lib/fontisan/commands/pack_command.rb +129 -22
  8. data/lib/fontisan/commands/validate_command.rb +107 -151
  9. data/lib/fontisan/config/conversion_matrix.yml +175 -1
  10. data/lib/fontisan/constants.rb +8 -0
  11. data/lib/fontisan/converters/collection_converter.rb +438 -0
  12. data/lib/fontisan/converters/woff2_encoder.rb +7 -29
  13. data/lib/fontisan/dfont_collection.rb +185 -0
  14. data/lib/fontisan/font_loader.rb +91 -6
  15. data/lib/fontisan/models/validation_report.rb +227 -0
  16. data/lib/fontisan/parsers/dfont_parser.rb +192 -0
  17. data/lib/fontisan/pipeline/transformation_pipeline.rb +4 -8
  18. data/lib/fontisan/tables/cmap.rb +82 -2
  19. data/lib/fontisan/tables/glyf.rb +118 -0
  20. data/lib/fontisan/tables/head.rb +60 -0
  21. data/lib/fontisan/tables/hhea.rb +74 -0
  22. data/lib/fontisan/tables/maxp.rb +60 -0
  23. data/lib/fontisan/tables/name.rb +76 -0
  24. data/lib/fontisan/tables/os2.rb +113 -0
  25. data/lib/fontisan/tables/post.rb +57 -0
  26. data/lib/fontisan/true_type_font.rb +8 -46
  27. data/lib/fontisan/validation/collection_validator.rb +265 -0
  28. data/lib/fontisan/validators/basic_validator.rb +85 -0
  29. data/lib/fontisan/validators/font_book_validator.rb +130 -0
  30. data/lib/fontisan/validators/opentype_validator.rb +112 -0
  31. data/lib/fontisan/validators/profile_loader.rb +139 -0
  32. data/lib/fontisan/validators/validator.rb +484 -0
  33. data/lib/fontisan/validators/web_font_validator.rb +102 -0
  34. data/lib/fontisan/version.rb +1 -1
  35. data/lib/fontisan.rb +78 -6
  36. metadata +13 -12
  37. data/lib/fontisan/config/validation_rules.yml +0 -149
  38. data/lib/fontisan/validation/checksum_validator.rb +0 -170
  39. data/lib/fontisan/validation/consistency_validator.rb +0 -197
  40. data/lib/fontisan/validation/structure_validator.rb +0 -198
  41. data/lib/fontisan/validation/table_validator.rb +0 -158
  42. data/lib/fontisan/validation/validator.rb +0 -152
  43. data/lib/fontisan/validation/variable_font_validator.rb +0 -218
  44. data/lib/fontisan/validation/woff2_header_validator.rb +0 -278
  45. data/lib/fontisan/validation/woff2_table_validator.rb +0 -270
  46. data/lib/fontisan/validation/woff2_validator.rb +0 -248
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: efdc28872530847f76e7d586ed2ac859d0860275a9289936e742a467f6139799
4
- data.tar.gz: b1af1580a3ef2d2b1dbb449c3c7295194497b358d8819d5f18496282b7730ed5
3
+ metadata.gz: 9ee842928fa05a0dceee00f233fe76f0f392083087807e8d85dc2ab3840b17e4
4
+ data.tar.gz: fd136b7b46e1cf21b3bcd9a968fb13cf9abe59bff4b6c73b798db8bee40d7a02
5
5
  SHA512:
6
- metadata.gz: 533a181937b1b46ea380a14a9c108ba19678f9bf1c0fcb8a5b51f0e0fb43630c69180c74679ad91da49fa73d136ec783e69b460ce8f031834e3fc500ca666139
7
- data.tar.gz: '09e9d4ff6a4694df5d6756dc9f4dc056f1951d66ca456079ad40336a41e32b804b15aa597f4089d20a20474a75faf680782c6cca2bf5ee8c2d5c30eb41e12623'
6
+ metadata.gz: b0d3626427babba6144519e649ac113673a42d89ff1fde9b2c854d7ec72e8ef3aa4434cb98cc59c6243c0b428607c6ad30b746955afbec9452f2b06fbb31ba54
7
+ data.tar.gz: 3d871f07e2591a82081cf1c5f7582d3e731f1d1cf1fc0e416ff0c9216de417046220bd6afd8d482c6c096a2c96639004e567cec74c3ef8b9eac2c9815d2c5738
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2026-01-03 02:11:10 UTC using RuboCop version 1.81.7.
3
+ # on 2026-01-05 11:02:40 UTC using RuboCop version 1.81.7.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -20,11 +20,13 @@ Layout/ArgumentAlignment:
20
20
  Exclude:
21
21
  - 'lib/fontisan/converters/woff2_encoder.rb'
22
22
 
23
- # Offense count: 1
23
+ # Offense count: 3
24
24
  # This cop supports safe autocorrection (--autocorrect).
25
25
  Layout/EmptyLineAfterGuardClause:
26
26
  Exclude:
27
+ - 'lib/fontisan/commands/validate_command.rb'
27
28
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
29
+ - 'lib/fontisan/models/validation_report.rb'
28
30
 
29
31
  # Offense count: 1
30
32
  # This cop supports safe autocorrection (--autocorrect).
@@ -32,24 +34,38 @@ Layout/EmptyLinesAroundExceptionHandlingKeywords:
32
34
  Exclude:
33
35
  - 'lib/fontisan/hints/hint_validator.rb'
34
36
 
35
- # Offense count: 23
37
+ # Offense count: 32
36
38
  # This cop supports safe autocorrection (--autocorrect).
37
39
  # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
38
40
  Layout/ExtraSpacing:
39
41
  Exclude:
40
42
  - 'lib/fontisan/commands/info_command.rb'
41
43
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
44
+ - 'lib/fontisan/tables/glyf.rb'
45
+ - 'lib/fontisan/tables/head.rb'
46
+ - 'lib/fontisan/tables/maxp.rb'
47
+ - 'lib/fontisan/tables/os2.rb'
42
48
  - 'lib/fontisan/tables/sbix.rb'
43
49
  - 'spec/fontisan/tables/sbix_spec.rb'
50
+ - 'spec/fontisan/validators/basic_validator_spec.rb'
44
51
  - 'spec/integration/color_emoji_fonts_spec.rb'
52
+ - 'spec/integration/dfont_pack_spec.rb'
45
53
 
46
- # Offense count: 1270
54
+ # Offense count: 1309
47
55
  # This cop supports safe autocorrection (--autocorrect).
48
56
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
49
57
  # URISchemes: http, https
50
58
  Layout/LineLength:
51
59
  Enabled: false
52
60
 
61
+ # Offense count: 1
62
+ # This cop supports safe autocorrection (--autocorrect).
63
+ # Configuration parameters: EnforcedStyle.
64
+ # SupportedStyles: final_newline, final_blank_line
65
+ Layout/TrailingEmptyLines:
66
+ Exclude:
67
+ - 'spec/integration/dfont_pack_spec.rb'
68
+
53
69
  # Offense count: 18
54
70
  # This cop supports safe autocorrection (--autocorrect).
55
71
  # Configuration parameters: AllowInHeredoc.
@@ -76,7 +92,7 @@ Lint/EmptyConditionalBody:
76
92
  - 'lib/fontisan/cli.rb'
77
93
  - 'lib/fontisan/variation/variable_svg_generator.rb'
78
94
 
79
- # Offense count: 2
95
+ # Offense count: 3
80
96
  Lint/FloatComparison:
81
97
  Exclude:
82
98
  - 'lib/fontisan/tables/post.rb'
@@ -87,10 +103,11 @@ Lint/IneffectiveAccessModifier:
87
103
  - 'lib/fontisan/models/outline.rb'
88
104
  - 'lib/fontisan/models/ttx/tables/binary_table.rb'
89
105
 
90
- # Offense count: 1
106
+ # Offense count: 2
91
107
  # Configuration parameters: AllowedParentClasses.
92
108
  Lint/MissingSuper:
93
109
  Exclude:
110
+ - 'lib/fontisan/commands/validate_command.rb'
94
111
  - 'lib/fontisan/tables/cff2/table_builder.rb'
95
112
 
96
113
  # Offense count: 1
@@ -98,40 +115,56 @@ Lint/StructNewOverride:
98
115
  Exclude:
99
116
  - 'lib/fontisan/optimizers/pattern_analyzer.rb'
100
117
 
101
- # Offense count: 1
118
+ # Offense count: 22
102
119
  # This cop supports safe autocorrection (--autocorrect).
103
120
  # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
104
121
  Lint/UnusedBlockArgument:
105
122
  Exclude:
123
+ - 'lib/fontisan/validators/opentype_validator.rb'
106
124
  - 'spec/fontisan/tables/sbix_spec.rb'
125
+ - 'spec/fontisan/validators/profile_loader_spec.rb'
126
+ - 'spec/fontisan/validators/validator_spec.rb'
107
127
 
108
- # Offense count: 8
128
+ # Offense count: 13
109
129
  # This cop supports safe autocorrection (--autocorrect).
110
130
  # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
111
131
  # NotImplementedExceptions: NotImplementedError
112
132
  Lint/UnusedMethodArgument:
113
133
  Exclude:
134
+ - 'lib/fontisan.rb'
135
+ - 'lib/fontisan/converters/collection_converter.rb'
114
136
  - 'lib/fontisan/font_loader.rb'
115
137
  - 'lib/fontisan/optimizers/charstring_rewriter.rb'
116
138
  - 'lib/fontisan/tables/cff2/private_dict_blend_handler.rb'
139
+ - 'lib/fontisan/tables/glyf.rb'
117
140
  - 'lib/fontisan/utilities/brotli_wrapper.rb'
141
+ - 'lib/fontisan/validators/validator.rb'
118
142
  - 'lib/fontisan/variation/table_accessor.rb'
119
143
  - 'lib/fontisan/woff2/glyf_transformer.rb'
120
144
  - 'lib/fontisan/woff_font.rb'
121
145
 
122
- # Offense count: 3
146
+ # Offense count: 2
147
+ # This cop supports safe autocorrection (--autocorrect).
148
+ # Configuration parameters: ContextCreatingMethods, MethodCreatingMethods.
149
+ Lint/UselessAccessModifier:
150
+ Exclude:
151
+ - 'lib/fontisan.rb'
152
+ - 'lib/fontisan/tables/cmap.rb'
153
+
154
+ # Offense count: 4
123
155
  # This cop supports safe autocorrection (--autocorrect).
124
156
  Lint/UselessAssignment:
125
157
  Exclude:
126
158
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
127
159
  - 'spec/fontisan/hints/hint_round_trip_spec.rb'
160
+ - 'spec/fontisan/validators/validator_spec.rb'
128
161
 
129
- # Offense count: 462
162
+ # Offense count: 464
130
163
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
131
164
  Metrics/AbcSize:
132
165
  Enabled: false
133
166
 
134
- # Offense count: 29
167
+ # Offense count: 30
135
168
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
136
169
  # AllowedMethods: refine
137
170
  Metrics/BlockLength:
@@ -142,23 +175,23 @@ Metrics/BlockLength:
142
175
  Metrics/BlockNesting:
143
176
  Max: 5
144
177
 
145
- # Offense count: 240
178
+ # Offense count: 234
146
179
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
147
180
  Metrics/CyclomaticComplexity:
148
181
  Enabled: false
149
182
 
150
- # Offense count: 699
183
+ # Offense count: 706
151
184
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
152
185
  Metrics/MethodLength:
153
186
  Max: 135
154
187
 
155
- # Offense count: 18
188
+ # Offense count: 20
156
189
  # Configuration parameters: CountKeywordArgs.
157
190
  Metrics/ParameterLists:
158
191
  Max: 39
159
192
  MaxOptionalParameters: 4
160
193
 
161
- # Offense count: 174
194
+ # Offense count: 171
162
195
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
163
196
  Metrics/PerceivedComplexity:
164
197
  Enabled: false
@@ -173,7 +206,7 @@ Naming/MethodParameterName:
173
206
  - 'lib/fontisan/tables/glyf/curve_converter.rb'
174
207
  - 'lib/fontisan/variation/optimizer.rb'
175
208
 
176
- # Offense count: 84
209
+ # Offense count: 87
177
210
  # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
178
211
  # SupportedStyles: snake_case, normalcase, non_integer
179
212
  # AllowedIdentifiers: TLS1_1, TLS1_2, capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
@@ -206,24 +239,23 @@ Performance/TimesMap:
206
239
  - 'lib/fontisan/font_loader.rb'
207
240
  - 'lib/fontisan/tables/cff2.rb'
208
241
 
209
- # Offense count: 24
242
+ # Offense count: 23
210
243
  RSpec/AnyInstance:
211
244
  Exclude:
212
245
  - 'spec/fontisan/converters/format_converter_spec.rb'
213
246
  - 'spec/fontisan/hints/truetype_instruction_analyzer_spec.rb'
214
- - 'spec/fontisan/validation/validator_spec.rb'
215
247
  - 'spec/fontisan/variation/delta_applier_spec.rb'
216
248
  - 'spec/fontisan/variation/instance_writer_spec.rb'
217
249
  - 'spec/fontisan/variation/parallel_generator_spec.rb'
218
250
  - 'spec/integration/format_conversion_spec.rb'
219
251
 
220
- # Offense count: 105
252
+ # Offense count: 107
221
253
  # Configuration parameters: Prefixes, AllowedPatterns.
222
254
  # Prefixes: when, with, without
223
255
  RSpec/ContextWording:
224
256
  Enabled: false
225
257
 
226
- # Offense count: 21
258
+ # Offense count: 22
227
259
  # Configuration parameters: IgnoredMetadata.
228
260
  RSpec/DescribeClass:
229
261
  Enabled: false
@@ -234,12 +266,12 @@ RSpec/DescribeMethod:
234
266
  - 'spec/fontisan/collection/variable_font_builder_spec.rb'
235
267
  - 'spec/fontisan/converters/woff2_encoder_integration_spec.rb'
236
268
 
237
- # Offense count: 1263
269
+ # Offense count: 1284
238
270
  # Configuration parameters: CountAsOne.
239
271
  RSpec/ExampleLength:
240
272
  Max: 66
241
273
 
242
- # Offense count: 7
274
+ # Offense count: 8
243
275
  # This cop supports safe autocorrection (--autocorrect).
244
276
  RSpec/ExpectActual:
245
277
  Exclude:
@@ -249,6 +281,7 @@ RSpec/ExpectActual:
249
281
  - 'spec/fontisan/converters/woff2_round_trip_spec.rb'
250
282
  - 'spec/fontisan/subset/builder_spec.rb'
251
283
  - 'spec/fontisan/utils/thread_pool_spec.rb'
284
+ - 'spec/fontisan/validators/basic_validator_spec.rb'
252
285
  - 'spec/fontisan/variation/validator_spec.rb'
253
286
  - 'spec/fontisan/woff2/table_transformer_spec.rb'
254
287
 
@@ -299,20 +332,19 @@ RSpec/MessageSpies:
299
332
  - 'spec/fontisan/variation/instance_writer_spec.rb'
300
333
  - 'spec/fontisan/woff2_font_spec.rb'
301
334
 
302
- # Offense count: 5
335
+ # Offense count: 4
303
336
  RSpec/MultipleDescribes:
304
337
  Exclude:
305
338
  - 'spec/fontisan/loading_modes_spec.rb'
306
339
  - 'spec/fontisan/models/table_info_spec.rb'
307
340
  - 'spec/fontisan/utils/thread_pool_spec.rb'
308
- - 'spec/fontisan/validation/woff2_validator_spec.rb'
309
341
  - 'spec/fontisan/variation/cache_spec.rb'
310
342
 
311
- # Offense count: 1606
343
+ # Offense count: 1688
312
344
  RSpec/MultipleExpectations:
313
345
  Max: 22
314
346
 
315
- # Offense count: 135
347
+ # Offense count: 148
316
348
  # Configuration parameters: AllowSubject.
317
349
  RSpec/MultipleMemoizedHelpers:
318
350
  Max: 13
@@ -322,13 +354,14 @@ RSpec/MultipleMemoizedHelpers:
322
354
  RSpec/NestedGroups:
323
355
  Max: 4
324
356
 
325
- # Offense count: 10
357
+ # Offense count: 11
326
358
  # Configuration parameters: AllowedPatterns.
327
359
  # AllowedPatterns: ^expect_, ^assert_
328
360
  RSpec/NoExpectationExample:
329
361
  Exclude:
330
362
  - 'spec/benchmarks/subroutine_optimization_benchmark.rb'
331
363
  - 'spec/fontisan/hints/truetype_instruction_generator_spec.rb'
364
+ - 'spec/fontisan/validators/validator_spec.rb'
332
365
  - 'spec/fontisan/variation/variable_svg_generator_spec.rb'
333
366
 
334
367
  # Offense count: 11
@@ -338,7 +371,7 @@ RSpec/RepeatedExample:
338
371
  - 'spec/fontisan/metrics_calculator_spec.rb'
339
372
  - 'spec/fontisan/tables/os2_spec.rb'
340
373
 
341
- # Offense count: 14
374
+ # Offense count: 15
342
375
  # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
343
376
  # SupportedInflectors: default, active_support
344
377
  RSpec/SpecFilePathFormat:
@@ -357,6 +390,7 @@ RSpec/SpecFilePathFormat:
357
390
  - 'spec/fontisan/tables/cff/charstring_spec.rb'
358
391
  - 'spec/fontisan/tables/glyf/curve_converter_spec.rb'
359
392
  - 'spec/fontisan/tables/glyf/glyph_builder_spec.rb'
393
+ - 'spec/fontisan/validators/opentype_validator_spec.rb'
360
394
  - 'spec/fontisan/woff2/header_spec.rb'
361
395
 
362
396
  # Offense count: 1
@@ -380,7 +414,7 @@ RSpec/VerifiedDoubleReference:
380
414
  Exclude:
381
415
  - 'spec/fontisan/variation/parallel_generator_spec.rb'
382
416
 
383
- # Offense count: 292
417
+ # Offense count: 289
384
418
  # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
385
419
  RSpec/VerifiedDoubles:
386
420
  Enabled: false
@@ -395,7 +429,7 @@ Security/Open:
395
429
  Exclude:
396
430
  - 'Rakefile'
397
431
 
398
- # Offense count: 9
432
+ # Offense count: 12
399
433
  # This cop supports safe autocorrection (--autocorrect).
400
434
  # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
401
435
  # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
@@ -409,6 +443,8 @@ Style/BlockDelimiters:
409
443
  - 'spec/fontisan/hints/truetype_instruction_analyzer_spec.rb'
410
444
  - 'spec/fontisan/tables/colr_spec.rb'
411
445
  - 'spec/fontisan/tables/cpal_spec.rb'
446
+ - 'spec/fontisan/validators/profile_loader_spec.rb'
447
+ - 'spec/integration/font_validation_spec.rb'
412
448
 
413
449
  # Offense count: 1
414
450
  # This cop supports unsafe autocorrection (--autocorrect-all).
@@ -424,6 +460,15 @@ Style/ConditionalAssignment:
424
460
  Exclude:
425
461
  - 'lib/fontisan/formatters/text_formatter.rb'
426
462
 
463
+ # Offense count: 2
464
+ # This cop supports safe autocorrection (--autocorrect).
465
+ # Configuration parameters: EnforcedStyle, AllowComments.
466
+ # SupportedStyles: empty, nil, both
467
+ Style/EmptyElse:
468
+ Exclude:
469
+ - 'lib/fontisan/commands/convert_command.rb'
470
+ - 'lib/fontisan/validators/validator.rb'
471
+
427
472
  # Offense count: 17
428
473
  # This cop supports safe autocorrection (--autocorrect).
429
474
  # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, Mode, AllowedMethods, AllowedPatterns.
@@ -433,7 +478,7 @@ Style/FormatStringToken:
433
478
  - 'lib/fontisan/formatters/text_formatter.rb'
434
479
  - 'scripts/measure_optimization.rb'
435
480
 
436
- # Offense count: 4
481
+ # Offense count: 5
437
482
  # This cop supports unsafe autocorrection (--autocorrect-all).
438
483
  # Configuration parameters: AllowedReceivers.
439
484
  # AllowedReceivers: Thread.current
@@ -442,6 +487,7 @@ Style/HashEachMethods:
442
487
  - 'lib/fontisan/converters/woff_writer.rb'
443
488
  - 'lib/fontisan/subset/table_subsetter.rb'
444
489
  - 'spec/fontisan/subset/glyph_mapping_spec.rb'
490
+ - 'spec/fontisan/validators/profile_loader_spec.rb'
445
491
 
446
492
  # Offense count: 2
447
493
  # Configuration parameters: MinBranchesCount.
@@ -458,6 +504,28 @@ Style/IfInsideElse:
458
504
  - 'Rakefile'
459
505
 
460
506
  # Offense count: 6
507
+ # This cop supports safe autocorrection (--autocorrect).
508
+ Style/MultilineTernaryOperator:
509
+ Exclude:
510
+ - 'lib/fontisan/validators/validator.rb'
511
+
512
+ # Offense count: 3
513
+ # This cop supports safe autocorrection (--autocorrect).
514
+ # Configuration parameters: AllowMethodComparison, ComparisonsThreshold.
515
+ Style/MultipleComparison:
516
+ Exclude:
517
+ - 'lib/fontisan/tables/head.rb'
518
+ - 'lib/fontisan/tables/name.rb'
519
+ - 'lib/fontisan/tables/post.rb'
520
+
521
+ # Offense count: 6
522
+ # This cop supports safe autocorrection (--autocorrect).
523
+ # Configuration parameters: IncludeSemanticChanges.
524
+ Style/NonNilCheck:
525
+ Exclude:
526
+ - 'lib/fontisan/validators/validator.rb'
527
+
528
+ # Offense count: 24
461
529
  # This cop supports unsafe autocorrection (--autocorrect-all).
462
530
  # Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns.
463
531
  # SupportedStyles: predicate, comparison
@@ -469,6 +537,24 @@ Style/NumericPredicate:
469
537
  - 'lib/fontisan/hints/hint_validator.rb'
470
538
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
471
539
  - 'lib/fontisan/tables/cff2/private_dict_blend_handler.rb'
540
+ - 'lib/fontisan/tables/cmap.rb'
541
+ - 'lib/fontisan/tables/head.rb'
542
+ - 'lib/fontisan/tables/hhea.rb'
543
+ - 'lib/fontisan/tables/name.rb'
544
+ - 'lib/fontisan/tables/os2.rb'
545
+ - 'lib/fontisan/tables/post.rb'
546
+
547
+ # Offense count: 1
548
+ # This cop supports safe autocorrection (--autocorrect).
549
+ Style/RedundantAssignment:
550
+ Exclude:
551
+ - 'lib/fontisan/converters/woff2_encoder.rb'
552
+
553
+ # Offense count: 1
554
+ # This cop supports safe autocorrection (--autocorrect).
555
+ Style/RedundantBegin:
556
+ Exclude:
557
+ - 'lib/fontisan/tables/glyf.rb'
472
558
 
473
559
  # Offense count: 10
474
560
  # This cop supports unsafe autocorrection (--autocorrect-all).
@@ -477,6 +563,27 @@ Style/RedundantFetchBlock:
477
563
  Exclude:
478
564
  - 'spec/fontisan/variation/cache_spec.rb'
479
565
 
566
+ # Offense count: 3
567
+ # This cop supports safe autocorrection (--autocorrect).
568
+ # Configuration parameters: EnforcedStyle.
569
+ # SupportedStyles: implicit, explicit
570
+ Style/RescueStandardError:
571
+ Exclude:
572
+ - 'lib/fontisan/cli.rb'
573
+ - 'lib/fontisan/commands/validate_command.rb'
574
+ - 'lib/fontisan/validators/validator.rb'
575
+
576
+ # Offense count: 7
577
+ # This cop supports unsafe autocorrection (--autocorrect-all).
578
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
579
+ # AllowedMethods: present?, blank?, presence, try, try!
580
+ Style/SafeNavigation:
581
+ Exclude:
582
+ - 'lib/fontisan/cli.rb'
583
+ - 'lib/fontisan/tables/maxp.rb'
584
+ - 'lib/fontisan/tables/os2.rb'
585
+ - 'lib/fontisan/validators/validator.rb'
586
+
480
587
  # Offense count: 1
481
588
  # This cop supports safe autocorrection (--autocorrect).
482
589
  # Configuration parameters: AllowModifier.
@@ -491,6 +598,18 @@ Style/StringConcatenation:
491
598
  Exclude:
492
599
  - 'spec/fontisan/tables/cbdt_spec.rb'
493
600
 
601
+ # Offense count: 53
602
+ # This cop supports safe autocorrection (--autocorrect).
603
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
604
+ # SupportedStyles: single_quotes, double_quotes
605
+ Style/StringLiterals:
606
+ Exclude:
607
+ - 'lib/fontisan/commands/convert_command.rb'
608
+ - 'lib/fontisan/converters/collection_converter.rb'
609
+ - 'lib/fontisan/validators/font_book_validator.rb'
610
+ - 'lib/fontisan/validators/opentype_validator.rb'
611
+ - 'lib/fontisan/validators/web_font_validator.rb'
612
+
494
613
  # Offense count: 2
495
614
  # This cop supports safe autocorrection (--autocorrect).
496
615
  # Configuration parameters: .
@@ -499,18 +618,35 @@ Style/SymbolArray:
499
618
  EnforcedStyle: percent
500
619
  MinSize: 3
501
620
 
502
- # Offense count: 53
621
+ # Offense count: 50
622
+ # This cop supports unsafe autocorrection (--autocorrect-all).
623
+ # Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
624
+ # AllowedMethods: define_method
625
+ Style/SymbolProc:
626
+ Exclude:
627
+ - 'lib/fontisan/validators/basic_validator.rb'
628
+ - 'lib/fontisan/validators/font_book_validator.rb'
629
+ - 'lib/fontisan/validators/opentype_validator.rb'
630
+ - 'lib/fontisan/validators/web_font_validator.rb'
631
+ - 'spec/fontisan/validators/validator_spec.rb'
632
+
633
+ # Offense count: 69
503
634
  # This cop supports safe autocorrection (--autocorrect).
504
635
  # Configuration parameters: EnforcedStyleForMultiline.
505
636
  # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
506
637
  Style/TrailingCommaInArguments:
507
638
  Exclude:
639
+ - 'lib/fontisan/cli.rb'
640
+ - 'lib/fontisan/commands/convert_command.rb'
508
641
  - 'lib/fontisan/commands/info_command.rb'
509
642
  - 'spec/fontisan/converters/woff2_encoder_integration_spec.rb'
643
+ - 'spec/fontisan/models/validation_report_spec.rb'
510
644
  - 'spec/fontisan/optimizers/charstring_rewriter_spec.rb'
511
645
  - 'spec/fontisan/tables/cblc_spec.rb'
512
646
  - 'spec/fontisan/tables/sbix_spec.rb'
647
+ - 'spec/fontisan/validators/basic_validator_spec.rb'
513
648
  - 'spec/integration/color_emoji_fonts_spec.rb'
649
+ - 'spec/integration/dfont_pack_spec.rb'
514
650
 
515
651
  # Offense count: 12
516
652
  # This cop supports safe autocorrection (--autocorrect).