fontisan 0.2.3 → 0.2.5

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +221 -49
  3. data/README.adoc +519 -5
  4. data/Rakefile +20 -7
  5. data/lib/fontisan/cli.rb +67 -6
  6. data/lib/fontisan/commands/base_command.rb +2 -19
  7. data/lib/fontisan/commands/convert_command.rb +16 -13
  8. data/lib/fontisan/commands/info_command.rb +88 -0
  9. data/lib/fontisan/commands/validate_command.rb +107 -151
  10. data/lib/fontisan/config/conversion_matrix.yml +58 -20
  11. data/lib/fontisan/converters/outline_converter.rb +6 -3
  12. data/lib/fontisan/converters/svg_generator.rb +45 -0
  13. data/lib/fontisan/converters/woff2_encoder.rb +84 -13
  14. data/lib/fontisan/models/bitmap_glyph.rb +123 -0
  15. data/lib/fontisan/models/bitmap_strike.rb +94 -0
  16. data/lib/fontisan/models/color_glyph.rb +57 -0
  17. data/lib/fontisan/models/color_layer.rb +53 -0
  18. data/lib/fontisan/models/color_palette.rb +60 -0
  19. data/lib/fontisan/models/font_info.rb +26 -0
  20. data/lib/fontisan/models/svg_glyph.rb +89 -0
  21. data/lib/fontisan/models/validation_report.rb +227 -0
  22. data/lib/fontisan/open_type_font.rb +6 -0
  23. data/lib/fontisan/optimizers/charstring_rewriter.rb +19 -8
  24. data/lib/fontisan/optimizers/pattern_analyzer.rb +4 -2
  25. data/lib/fontisan/optimizers/subroutine_builder.rb +6 -5
  26. data/lib/fontisan/optimizers/subroutine_optimizer.rb +5 -2
  27. data/lib/fontisan/pipeline/output_writer.rb +2 -2
  28. data/lib/fontisan/pipeline/transformation_pipeline.rb +4 -8
  29. data/lib/fontisan/tables/cbdt.rb +169 -0
  30. data/lib/fontisan/tables/cblc.rb +290 -0
  31. data/lib/fontisan/tables/cff.rb +6 -12
  32. data/lib/fontisan/tables/cmap.rb +82 -2
  33. data/lib/fontisan/tables/colr.rb +291 -0
  34. data/lib/fontisan/tables/cpal.rb +281 -0
  35. data/lib/fontisan/tables/glyf/glyph_builder.rb +5 -1
  36. data/lib/fontisan/tables/glyf.rb +118 -0
  37. data/lib/fontisan/tables/head.rb +60 -0
  38. data/lib/fontisan/tables/hhea.rb +74 -0
  39. data/lib/fontisan/tables/maxp.rb +60 -0
  40. data/lib/fontisan/tables/name.rb +76 -0
  41. data/lib/fontisan/tables/os2.rb +113 -0
  42. data/lib/fontisan/tables/post.rb +57 -0
  43. data/lib/fontisan/tables/sbix.rb +379 -0
  44. data/lib/fontisan/tables/svg.rb +301 -0
  45. data/lib/fontisan/true_type_font.rb +6 -0
  46. data/lib/fontisan/validators/basic_validator.rb +85 -0
  47. data/lib/fontisan/validators/font_book_validator.rb +130 -0
  48. data/lib/fontisan/validators/opentype_validator.rb +112 -0
  49. data/lib/fontisan/validators/profile_loader.rb +139 -0
  50. data/lib/fontisan/validators/validator.rb +484 -0
  51. data/lib/fontisan/validators/web_font_validator.rb +102 -0
  52. data/lib/fontisan/version.rb +1 -1
  53. data/lib/fontisan/woff2/directory.rb +40 -11
  54. data/lib/fontisan/woff2/table_transformer.rb +506 -73
  55. data/lib/fontisan/woff2_font.rb +29 -9
  56. data/lib/fontisan/woff_font.rb +17 -4
  57. data/lib/fontisan.rb +90 -6
  58. metadata +20 -9
  59. data/lib/fontisan/config/validation_rules.yml +0 -149
  60. data/lib/fontisan/validation/checksum_validator.rb +0 -170
  61. data/lib/fontisan/validation/consistency_validator.rb +0 -197
  62. data/lib/fontisan/validation/structure_validator.rb +0 -198
  63. data/lib/fontisan/validation/table_validator.rb +0 -158
  64. data/lib/fontisan/validation/validator.rb +0 -152
  65. data/lib/fontisan/validation/variable_font_validator.rb +0 -218
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d342cbc82376aa9327747fd679edf9199ab0e1fbed9a729d4385aae52d6c5de9
4
- data.tar.gz: 8427c56d4e65ca035a5bff415ef7020e3f6e17c31f4c43d8b28b5ca8e41e4fe4
3
+ metadata.gz: f9e4f20ee30027ebf8a4b3ab32962f140f534499bbf092a9612536e55ba32a98
4
+ data.tar.gz: 04d9460282cb09bbecc12cb370ccbbadcaceea130eff6287a8ac30042b3e3a0f
5
5
  SHA512:
6
- metadata.gz: e5c9b89e658113edcd96e98c4c56733538a4e47eb18220d49ca8e21c5117285795759a6e3dd5b4f2a0b29f7a4a66c0bf0bf25757780dd438045eb705feef97ef
7
- data.tar.gz: 5ec8c48befb405a5d9911a6f00a2287a9cae461847b52094abe1367cd5f1fd5c451363182ed3c9a924c96d13299659869c6ffa2f192951301d1218eb840e0623
6
+ metadata.gz: 87bb6f593f2ff100fec38820360a540323fd25a2c54309b7a639829b3536d31b8bdbc188071677aebb1d3fbf9fd0e3ddcd5777b4c2444d8150873a8a75989bfa
7
+ data.tar.gz: b22a61de6d8cf929c951dfda40a5388331b2a23ca72dc785d96a872d102733dab263de01036968547702a2e421673315d83c50672efd813d1191d0ca7a31079b
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-12-30 09:54:17 UTC using RuboCop version 1.81.7.
3
+ # on 2026-01-03 10:07:45 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
@@ -14,9 +14,19 @@ Gemspec/RequiredRubyVersion:
14
14
 
15
15
  # Offense count: 1
16
16
  # This cop supports safe autocorrection (--autocorrect).
17
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
18
+ # SupportedStyles: with_first_argument, with_fixed_indentation
19
+ Layout/ArgumentAlignment:
20
+ Exclude:
21
+ - 'lib/fontisan/converters/woff2_encoder.rb'
22
+
23
+ # Offense count: 3
24
+ # This cop supports safe autocorrection (--autocorrect).
17
25
  Layout/EmptyLineAfterGuardClause:
18
26
  Exclude:
27
+ - 'lib/fontisan/commands/validate_command.rb'
19
28
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
29
+ - 'lib/fontisan/models/validation_report.rb'
20
30
 
21
31
  # Offense count: 1
22
32
  # This cop supports safe autocorrection (--autocorrect).
@@ -24,21 +34,37 @@ Layout/EmptyLinesAroundExceptionHandlingKeywords:
24
34
  Exclude:
25
35
  - 'lib/fontisan/hints/hint_validator.rb'
26
36
 
27
- # Offense count: 2
37
+ # Offense count: 31
28
38
  # This cop supports safe autocorrection (--autocorrect).
29
39
  # Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
30
40
  Layout/ExtraSpacing:
31
41
  Exclude:
42
+ - 'lib/fontisan/commands/info_command.rb'
32
43
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
33
-
34
- # Offense count: 1109
44
+ - 'lib/fontisan/tables/glyf.rb'
45
+ - 'lib/fontisan/tables/head.rb'
46
+ - 'lib/fontisan/tables/maxp.rb'
47
+ - 'lib/fontisan/tables/os2.rb'
48
+ - 'lib/fontisan/tables/sbix.rb'
49
+ - 'spec/fontisan/tables/sbix_spec.rb'
50
+ - 'spec/fontisan/validators/basic_validator_spec.rb'
51
+ - 'spec/integration/color_emoji_fonts_spec.rb'
52
+
53
+ # Offense count: 1242
35
54
  # This cop supports safe autocorrection (--autocorrect).
36
55
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
37
56
  # URISchemes: http, https
38
57
  Layout/LineLength:
39
58
  Enabled: false
40
59
 
41
- # Offense count: 26
60
+ # Offense count: 18
61
+ # This cop supports safe autocorrection (--autocorrect).
62
+ # Configuration parameters: AllowInHeredoc.
63
+ Layout/TrailingWhitespace:
64
+ Exclude:
65
+ - 'spec/fontisan/converters/woff2_encoder_integration_spec.rb'
66
+
67
+ # Offense count: 25
42
68
  # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
43
69
  Lint/DuplicateBranch:
44
70
  Enabled: false
@@ -57,7 +83,7 @@ Lint/EmptyConditionalBody:
57
83
  - 'lib/fontisan/cli.rb'
58
84
  - 'lib/fontisan/variation/variable_svg_generator.rb'
59
85
 
60
- # Offense count: 2
86
+ # Offense count: 3
61
87
  Lint/FloatComparison:
62
88
  Exclude:
63
89
  - 'lib/fontisan/tables/post.rb'
@@ -68,10 +94,11 @@ Lint/IneffectiveAccessModifier:
68
94
  - 'lib/fontisan/models/outline.rb'
69
95
  - 'lib/fontisan/models/ttx/tables/binary_table.rb'
70
96
 
71
- # Offense count: 1
97
+ # Offense count: 2
72
98
  # Configuration parameters: AllowedParentClasses.
73
99
  Lint/MissingSuper:
74
100
  Exclude:
101
+ - 'lib/fontisan/commands/validate_command.rb'
75
102
  - 'lib/fontisan/tables/cff2/table_builder.rb'
76
103
 
77
104
  # Offense count: 1
@@ -79,58 +106,82 @@ Lint/StructNewOverride:
79
106
  Exclude:
80
107
  - 'lib/fontisan/optimizers/pattern_analyzer.rb'
81
108
 
82
- # Offense count: 5
109
+ # Offense count: 22
110
+ # This cop supports safe autocorrection (--autocorrect).
111
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
112
+ Lint/UnusedBlockArgument:
113
+ Exclude:
114
+ - 'lib/fontisan/validators/opentype_validator.rb'
115
+ - 'spec/fontisan/tables/sbix_spec.rb'
116
+ - 'spec/fontisan/validators/profile_loader_spec.rb'
117
+ - 'spec/fontisan/validators/validator_spec.rb'
118
+
119
+ # Offense count: 11
83
120
  # This cop supports safe autocorrection (--autocorrect).
84
121
  # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
85
122
  # NotImplementedExceptions: NotImplementedError
86
123
  Lint/UnusedMethodArgument:
87
124
  Exclude:
125
+ - 'lib/fontisan.rb'
88
126
  - 'lib/fontisan/font_loader.rb'
127
+ - 'lib/fontisan/optimizers/charstring_rewriter.rb'
89
128
  - 'lib/fontisan/tables/cff2/private_dict_blend_handler.rb'
129
+ - 'lib/fontisan/tables/glyf.rb'
90
130
  - 'lib/fontisan/utilities/brotli_wrapper.rb'
131
+ - 'lib/fontisan/validators/validator.rb'
91
132
  - 'lib/fontisan/variation/table_accessor.rb'
92
133
  - 'lib/fontisan/woff2/glyf_transformer.rb'
134
+ - 'lib/fontisan/woff_font.rb'
93
135
 
94
- # Offense count: 3
136
+ # Offense count: 2
137
+ # This cop supports safe autocorrection (--autocorrect).
138
+ # Configuration parameters: ContextCreatingMethods, MethodCreatingMethods.
139
+ Lint/UselessAccessModifier:
140
+ Exclude:
141
+ - 'lib/fontisan.rb'
142
+ - 'lib/fontisan/tables/cmap.rb'
143
+
144
+ # Offense count: 4
95
145
  # This cop supports safe autocorrection (--autocorrect).
96
146
  Lint/UselessAssignment:
97
147
  Exclude:
98
148
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
99
149
  - 'spec/fontisan/hints/hint_round_trip_spec.rb'
150
+ - 'spec/fontisan/validators/validator_spec.rb'
100
151
 
101
- # Offense count: 432
152
+ # Offense count: 452
102
153
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
103
154
  Metrics/AbcSize:
104
155
  Enabled: false
105
156
 
106
- # Offense count: 27
157
+ # Offense count: 29
107
158
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
108
159
  # AllowedMethods: refine
109
160
  Metrics/BlockLength:
110
- Max: 80
161
+ Max: 91
111
162
 
112
163
  # Offense count: 8
113
164
  # Configuration parameters: CountBlocks, CountModifierForms.
114
165
  Metrics/BlockNesting:
115
166
  Max: 5
116
167
 
117
- # Offense count: 223
168
+ # Offense count: 230
118
169
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
119
170
  Metrics/CyclomaticComplexity:
120
171
  Enabled: false
121
172
 
122
- # Offense count: 648
173
+ # Offense count: 678
123
174
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
124
175
  Metrics/MethodLength:
125
176
  Max: 135
126
177
 
127
- # Offense count: 17
178
+ # Offense count: 19
128
179
  # Configuration parameters: CountKeywordArgs.
129
180
  Metrics/ParameterLists:
130
181
  Max: 39
131
182
  MaxOptionalParameters: 4
132
183
 
133
- # Offense count: 157
184
+ # Offense count: 167
134
185
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
135
186
  Metrics/PerceivedComplexity:
136
187
  Enabled: false
@@ -145,29 +196,14 @@ Naming/MethodParameterName:
145
196
  - 'lib/fontisan/tables/glyf/curve_converter.rb'
146
197
  - 'lib/fontisan/variation/optimizer.rb'
147
198
 
148
- # Offense count: 71
199
+ # Offense count: 84
149
200
  # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
150
201
  # SupportedStyles: snake_case, normalcase, non_integer
151
202
  # AllowedIdentifiers: TLS1_1, TLS1_2, capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
152
203
  Naming/VariableNumber:
153
- Exclude:
154
- - 'lib/fontisan/models/ttx/tables/os2_table.rb'
155
- - 'lib/fontisan/subset/table_subsetter.rb'
156
- - 'lib/fontisan/tables/cff/charset.rb'
157
- - 'lib/fontisan/tables/cff/encoding.rb'
158
- - 'lib/fontisan/tables/cmap.rb'
159
- - 'lib/fontisan/tables/glyf.rb'
160
- - 'lib/fontisan/tables/glyf/compound_glyph.rb'
161
- - 'lib/fontisan/tables/glyf/glyph_builder.rb'
162
- - 'lib/fontisan/tables/glyf/simple_glyph.rb'
163
- - 'spec/fontisan/collection/table_deduplicator_spec.rb'
164
- - 'spec/fontisan/tables/cff/charset_spec.rb'
165
- - 'spec/fontisan/tables/glyf/glyph_builder_spec.rb'
166
- - 'spec/fontisan/tables/glyf_spec.rb'
167
- - 'spec/fontisan/tables/hmtx_spec.rb'
168
- - 'spec/fontisan/tables/maxp_spec.rb'
204
+ Enabled: false
169
205
 
170
- # Offense count: 22
206
+ # Offense count: 25
171
207
  # Configuration parameters: MinSize.
172
208
  Performance/CollectionLiteralInLoop:
173
209
  Exclude:
@@ -177,8 +213,10 @@ Performance/CollectionLiteralInLoop:
177
213
  - 'lib/fontisan/tables/cff/private_dict_writer.rb'
178
214
  - 'lib/fontisan/tables/cff2.rb'
179
215
  - 'lib/fontisan/tables/cff2/region_matcher.rb'
216
+ - 'lib/fontisan/tables/sbix.rb'
180
217
  - 'lib/fontisan/true_type_font.rb'
181
218
  - 'lib/fontisan/variation/validator.rb'
219
+ - 'lib/fontisan/woff2/table_transformer.rb'
182
220
  - 'spec/fontisan/cli_spec.rb'
183
221
  - 'spec/fontisan/commands/glyphs_command_spec.rb'
184
222
  - 'spec/fontisan/commands/info_command_spec.rb'
@@ -191,47 +229,51 @@ Performance/TimesMap:
191
229
  - 'lib/fontisan/font_loader.rb'
192
230
  - 'lib/fontisan/tables/cff2.rb'
193
231
 
194
- # Offense count: 24
232
+ # Offense count: 23
195
233
  RSpec/AnyInstance:
196
234
  Exclude:
197
235
  - 'spec/fontisan/converters/format_converter_spec.rb'
198
236
  - 'spec/fontisan/hints/truetype_instruction_analyzer_spec.rb'
199
- - 'spec/fontisan/validation/validator_spec.rb'
200
237
  - 'spec/fontisan/variation/delta_applier_spec.rb'
201
238
  - 'spec/fontisan/variation/instance_writer_spec.rb'
202
239
  - 'spec/fontisan/variation/parallel_generator_spec.rb'
203
240
  - 'spec/integration/format_conversion_spec.rb'
204
241
 
205
- # Offense count: 100
242
+ # Offense count: 107
206
243
  # Configuration parameters: Prefixes, AllowedPatterns.
207
244
  # Prefixes: when, with, without
208
245
  RSpec/ContextWording:
209
246
  Enabled: false
210
247
 
211
- # Offense count: 17
248
+ # Offense count: 21
212
249
  # Configuration parameters: IgnoredMetadata.
213
250
  RSpec/DescribeClass:
214
251
  Enabled: false
215
252
 
216
- # Offense count: 1
253
+ # Offense count: 2
217
254
  RSpec/DescribeMethod:
218
255
  Exclude:
219
256
  - 'spec/fontisan/collection/variable_font_builder_spec.rb'
257
+ - 'spec/fontisan/converters/woff2_encoder_integration_spec.rb'
220
258
 
221
- # Offense count: 1156
259
+ # Offense count: 1269
222
260
  # Configuration parameters: CountAsOne.
223
261
  RSpec/ExampleLength:
224
262
  Max: 66
225
263
 
226
- # Offense count: 4
264
+ # Offense count: 8
227
265
  # This cop supports safe autocorrection (--autocorrect).
228
266
  RSpec/ExpectActual:
229
267
  Exclude:
230
268
  - '**/spec/routing/**/*'
231
269
  - 'spec/fontisan/commands/subset_command_spec.rb'
270
+ - 'spec/fontisan/converters/extended_woff2_spec.rb'
271
+ - 'spec/fontisan/converters/woff2_round_trip_spec.rb'
232
272
  - 'spec/fontisan/subset/builder_spec.rb'
233
273
  - 'spec/fontisan/utils/thread_pool_spec.rb'
274
+ - 'spec/fontisan/validators/basic_validator_spec.rb'
234
275
  - 'spec/fontisan/variation/validator_spec.rb'
276
+ - 'spec/fontisan/woff2/table_transformer_spec.rb'
235
277
 
236
278
  # Offense count: 1
237
279
  RSpec/IdenticalEqualityAssertion:
@@ -288,11 +330,11 @@ RSpec/MultipleDescribes:
288
330
  - 'spec/fontisan/utils/thread_pool_spec.rb'
289
331
  - 'spec/fontisan/variation/cache_spec.rb'
290
332
 
291
- # Offense count: 1494
333
+ # Offense count: 1674
292
334
  RSpec/MultipleExpectations:
293
335
  Max: 22
294
336
 
295
- # Offense count: 134
337
+ # Offense count: 148
296
338
  # Configuration parameters: AllowSubject.
297
339
  RSpec/MultipleMemoizedHelpers:
298
340
  Max: 13
@@ -302,13 +344,14 @@ RSpec/MultipleMemoizedHelpers:
302
344
  RSpec/NestedGroups:
303
345
  Max: 4
304
346
 
305
- # Offense count: 10
347
+ # Offense count: 11
306
348
  # Configuration parameters: AllowedPatterns.
307
349
  # AllowedPatterns: ^expect_, ^assert_
308
350
  RSpec/NoExpectationExample:
309
351
  Exclude:
310
352
  - 'spec/benchmarks/subroutine_optimization_benchmark.rb'
311
353
  - 'spec/fontisan/hints/truetype_instruction_generator_spec.rb'
354
+ - 'spec/fontisan/validators/validator_spec.rb'
312
355
  - 'spec/fontisan/variation/variable_svg_generator_spec.rb'
313
356
 
314
357
  # Offense count: 11
@@ -318,7 +361,7 @@ RSpec/RepeatedExample:
318
361
  - 'spec/fontisan/metrics_calculator_spec.rb'
319
362
  - 'spec/fontisan/tables/os2_spec.rb'
320
363
 
321
- # Offense count: 14
364
+ # Offense count: 15
322
365
  # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
323
366
  # SupportedInflectors: default, active_support
324
367
  RSpec/SpecFilePathFormat:
@@ -337,6 +380,7 @@ RSpec/SpecFilePathFormat:
337
380
  - 'spec/fontisan/tables/cff/charstring_spec.rb'
338
381
  - 'spec/fontisan/tables/glyf/curve_converter_spec.rb'
339
382
  - 'spec/fontisan/tables/glyf/glyph_builder_spec.rb'
383
+ - 'spec/fontisan/validators/opentype_validator_spec.rb'
340
384
  - 'spec/fontisan/woff2/header_spec.rb'
341
385
 
342
386
  # Offense count: 1
@@ -360,7 +404,7 @@ RSpec/VerifiedDoubleReference:
360
404
  Exclude:
361
405
  - 'spec/fontisan/variation/parallel_generator_spec.rb'
362
406
 
363
- # Offense count: 292
407
+ # Offense count: 288
364
408
  # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
365
409
  RSpec/VerifiedDoubles:
366
410
  Enabled: false
@@ -375,7 +419,7 @@ Security/Open:
375
419
  Exclude:
376
420
  - 'Rakefile'
377
421
 
378
- # Offense count: 3
422
+ # Offense count: 12
379
423
  # This cop supports safe autocorrection (--autocorrect).
380
424
  # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
381
425
  # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
@@ -384,8 +428,13 @@ Security/Open:
384
428
  # AllowedMethods: lambda, proc, it
385
429
  Style/BlockDelimiters:
386
430
  Exclude:
431
+ - 'spec/fontisan/converters/extended_woff2_spec.rb'
387
432
  - 'spec/fontisan/hints/hint_validator_spec.rb'
388
433
  - 'spec/fontisan/hints/truetype_instruction_analyzer_spec.rb'
434
+ - 'spec/fontisan/tables/colr_spec.rb'
435
+ - 'spec/fontisan/tables/cpal_spec.rb'
436
+ - 'spec/fontisan/validators/profile_loader_spec.rb'
437
+ - 'spec/integration/font_validation_spec.rb'
389
438
 
390
439
  # Offense count: 1
391
440
  # This cop supports unsafe autocorrection (--autocorrect-all).
@@ -401,6 +450,14 @@ Style/ConditionalAssignment:
401
450
  Exclude:
402
451
  - 'lib/fontisan/formatters/text_formatter.rb'
403
452
 
453
+ # Offense count: 1
454
+ # This cop supports safe autocorrection (--autocorrect).
455
+ # Configuration parameters: EnforcedStyle, AllowComments.
456
+ # SupportedStyles: empty, nil, both
457
+ Style/EmptyElse:
458
+ Exclude:
459
+ - 'lib/fontisan/validators/validator.rb'
460
+
404
461
  # Offense count: 17
405
462
  # This cop supports safe autocorrection (--autocorrect).
406
463
  # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, Mode, AllowedMethods, AllowedPatterns.
@@ -410,7 +467,7 @@ Style/FormatStringToken:
410
467
  - 'lib/fontisan/formatters/text_formatter.rb'
411
468
  - 'scripts/measure_optimization.rb'
412
469
 
413
- # Offense count: 4
470
+ # Offense count: 5
414
471
  # This cop supports unsafe autocorrection (--autocorrect-all).
415
472
  # Configuration parameters: AllowedReceivers.
416
473
  # AllowedReceivers: Thread.current
@@ -419,6 +476,7 @@ Style/HashEachMethods:
419
476
  - 'lib/fontisan/converters/woff_writer.rb'
420
477
  - 'lib/fontisan/subset/table_subsetter.rb'
421
478
  - 'spec/fontisan/subset/glyph_mapping_spec.rb'
479
+ - 'spec/fontisan/validators/profile_loader_spec.rb'
422
480
 
423
481
  # Offense count: 2
424
482
  # Configuration parameters: MinBranchesCount.
@@ -427,7 +485,36 @@ Style/HashLikeCase:
427
485
  - 'lib/fontisan/commands/unpack_command.rb'
428
486
  - 'lib/fontisan/models/validation_report.rb'
429
487
 
488
+ # Offense count: 1
489
+ # This cop supports safe autocorrection (--autocorrect).
490
+ # Configuration parameters: AllowIfModifier.
491
+ Style/IfInsideElse:
492
+ Exclude:
493
+ - 'Rakefile'
494
+
495
+ # Offense count: 6
496
+ # This cop supports safe autocorrection (--autocorrect).
497
+ Style/MultilineTernaryOperator:
498
+ Exclude:
499
+ - 'lib/fontisan/validators/validator.rb'
500
+
501
+ # Offense count: 3
502
+ # This cop supports safe autocorrection (--autocorrect).
503
+ # Configuration parameters: AllowMethodComparison, ComparisonsThreshold.
504
+ Style/MultipleComparison:
505
+ Exclude:
506
+ - 'lib/fontisan/tables/head.rb'
507
+ - 'lib/fontisan/tables/name.rb'
508
+ - 'lib/fontisan/tables/post.rb'
509
+
430
510
  # Offense count: 6
511
+ # This cop supports safe autocorrection (--autocorrect).
512
+ # Configuration parameters: IncludeSemanticChanges.
513
+ Style/NonNilCheck:
514
+ Exclude:
515
+ - 'lib/fontisan/validators/validator.rb'
516
+
517
+ # Offense count: 24
431
518
  # This cop supports unsafe autocorrection (--autocorrect-all).
432
519
  # Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns.
433
520
  # SupportedStyles: predicate, comparison
@@ -439,6 +526,24 @@ Style/NumericPredicate:
439
526
  - 'lib/fontisan/hints/hint_validator.rb'
440
527
  - 'lib/fontisan/hints/truetype_instruction_analyzer.rb'
441
528
  - 'lib/fontisan/tables/cff2/private_dict_blend_handler.rb'
529
+ - 'lib/fontisan/tables/cmap.rb'
530
+ - 'lib/fontisan/tables/head.rb'
531
+ - 'lib/fontisan/tables/hhea.rb'
532
+ - 'lib/fontisan/tables/name.rb'
533
+ - 'lib/fontisan/tables/os2.rb'
534
+ - 'lib/fontisan/tables/post.rb'
535
+
536
+ # Offense count: 1
537
+ # This cop supports safe autocorrection (--autocorrect).
538
+ Style/RedundantAssignment:
539
+ Exclude:
540
+ - 'lib/fontisan/converters/woff2_encoder.rb'
541
+
542
+ # Offense count: 1
543
+ # This cop supports safe autocorrection (--autocorrect).
544
+ Style/RedundantBegin:
545
+ Exclude:
546
+ - 'lib/fontisan/tables/glyf.rb'
442
547
 
443
548
  # Offense count: 10
444
549
  # This cop supports unsafe autocorrection (--autocorrect-all).
@@ -447,6 +552,26 @@ Style/RedundantFetchBlock:
447
552
  Exclude:
448
553
  - 'spec/fontisan/variation/cache_spec.rb'
449
554
 
555
+ # Offense count: 3
556
+ # This cop supports safe autocorrection (--autocorrect).
557
+ # Configuration parameters: EnforcedStyle.
558
+ # SupportedStyles: implicit, explicit
559
+ Style/RescueStandardError:
560
+ Exclude:
561
+ - 'lib/fontisan/cli.rb'
562
+ - 'lib/fontisan/commands/validate_command.rb'
563
+ - 'lib/fontisan/validators/validator.rb'
564
+
565
+ # Offense count: 6
566
+ # This cop supports unsafe autocorrection (--autocorrect-all).
567
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
568
+ # AllowedMethods: present?, blank?, presence, try, try!
569
+ Style/SafeNavigation:
570
+ Exclude:
571
+ - 'lib/fontisan/tables/maxp.rb'
572
+ - 'lib/fontisan/tables/os2.rb'
573
+ - 'lib/fontisan/validators/validator.rb'
574
+
450
575
  # Offense count: 1
451
576
  # This cop supports safe autocorrection (--autocorrect).
452
577
  # Configuration parameters: AllowModifier.
@@ -454,6 +579,23 @@ Style/SoleNestedConditional:
454
579
  Exclude:
455
580
  - 'lib/fontisan/hints/hint_validator.rb'
456
581
 
582
+ # Offense count: 4
583
+ # This cop supports unsafe autocorrection (--autocorrect-all).
584
+ # Configuration parameters: Mode.
585
+ Style/StringConcatenation:
586
+ Exclude:
587
+ - 'spec/fontisan/tables/cbdt_spec.rb'
588
+
589
+ # Offense count: 48
590
+ # This cop supports safe autocorrection (--autocorrect).
591
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
592
+ # SupportedStyles: single_quotes, double_quotes
593
+ Style/StringLiterals:
594
+ Exclude:
595
+ - 'lib/fontisan/validators/font_book_validator.rb'
596
+ - 'lib/fontisan/validators/opentype_validator.rb'
597
+ - 'lib/fontisan/validators/web_font_validator.rb'
598
+
457
599
  # Offense count: 2
458
600
  # This cop supports safe autocorrection (--autocorrect).
459
601
  # Configuration parameters: .
@@ -462,13 +604,43 @@ Style/SymbolArray:
462
604
  EnforcedStyle: percent
463
605
  MinSize: 3
464
606
 
465
- # Offense count: 3
607
+ # Offense count: 50
608
+ # This cop supports unsafe autocorrection (--autocorrect-all).
609
+ # Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
610
+ # AllowedMethods: define_method
611
+ Style/SymbolProc:
612
+ Exclude:
613
+ - 'lib/fontisan/validators/basic_validator.rb'
614
+ - 'lib/fontisan/validators/font_book_validator.rb'
615
+ - 'lib/fontisan/validators/opentype_validator.rb'
616
+ - 'lib/fontisan/validators/web_font_validator.rb'
617
+ - 'spec/fontisan/validators/validator_spec.rb'
618
+
619
+ # Offense count: 65
620
+ # This cop supports safe autocorrection (--autocorrect).
621
+ # Configuration parameters: EnforcedStyleForMultiline.
622
+ # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
623
+ Style/TrailingCommaInArguments:
624
+ Exclude:
625
+ - 'lib/fontisan/cli.rb'
626
+ - 'lib/fontisan/commands/info_command.rb'
627
+ - 'spec/fontisan/converters/woff2_encoder_integration_spec.rb'
628
+ - 'spec/fontisan/models/validation_report_spec.rb'
629
+ - 'spec/fontisan/optimizers/charstring_rewriter_spec.rb'
630
+ - 'spec/fontisan/tables/cblc_spec.rb'
631
+ - 'spec/fontisan/tables/sbix_spec.rb'
632
+ - 'spec/fontisan/validators/basic_validator_spec.rb'
633
+ - 'spec/integration/color_emoji_fonts_spec.rb'
634
+
635
+ # Offense count: 12
466
636
  # This cop supports safe autocorrection (--autocorrect).
467
637
  # Configuration parameters: EnforcedStyleForMultiline.
468
638
  # SupportedStylesForMultiline: comma, consistent_comma, diff_comma, no_comma
469
639
  Style/TrailingCommaInArrayLiteral:
470
640
  Exclude:
471
641
  - 'spec/fontisan/hints/truetype_instruction_analyzer_spec.rb'
642
+ - 'spec/fontisan/tables/colr_spec.rb'
643
+ - 'spec/fontisan/tables/cpal_spec.rb'
472
644
  - 'spec/fontisan/variation/parallel_generator_spec.rb'
473
645
 
474
646
  # Offense count: 1