fontist 2.1.4 → 2.1.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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop_todo.yml +411 -10
  4. data/Gemfile +1 -0
  5. data/docs/.vitepress/config.ts +17 -0
  6. data/docs/cli/create-formula.md +6 -0
  7. data/docs/cli/import.md +4 -0
  8. data/docs/guide/formulas.md +73 -0
  9. data/docs/guide/installation.md +62 -0
  10. data/docs/guide/maintainer/import.md +372 -0
  11. data/docs/guide/maintainer/index.md +37 -0
  12. data/docs/guide/platforms/index.md +72 -0
  13. data/docs/guide/platforms/macos.md +151 -0
  14. data/docs/guide/platforms/windows.md +220 -0
  15. data/fontist.gemspec +0 -1
  16. data/lib/fontist/cache/manager.rb +0 -2
  17. data/lib/fontist/cache.rb +6 -0
  18. data/lib/fontist/cli/thor_ext.rb +0 -2
  19. data/lib/fontist/cli.rb +0 -9
  20. data/lib/fontist/collection_file.rb +0 -3
  21. data/lib/fontist/font.rb +0 -6
  22. data/lib/fontist/font_collection.rb +0 -1
  23. data/lib/fontist/font_file.rb +0 -1
  24. data/lib/fontist/font_installer.rb +0 -5
  25. data/lib/fontist/font_model.rb +0 -1
  26. data/lib/fontist/font_path.rb +0 -2
  27. data/lib/fontist/formula.rb +0 -13
  28. data/lib/fontist/formula_picker.rb +0 -2
  29. data/lib/fontist/google_import_source.rb +0 -2
  30. data/lib/fontist/import/convert_formulas.rb +0 -2
  31. data/lib/fontist/import/create_formula.rb +0 -4
  32. data/lib/fontist/import/files/collection_file.rb +0 -1
  33. data/lib/fontist/import/files.rb +8 -0
  34. data/lib/fontist/import/font_metadata_extractor.rb +0 -1
  35. data/lib/fontist/import/formula_builder.rb +0 -6
  36. data/lib/fontist/import/google/api.rb +0 -9
  37. data/lib/fontist/import/google/data_sources/base.rb +0 -1
  38. data/lib/fontist/import/google/data_sources/github.rb +0 -3
  39. data/lib/fontist/import/google/data_sources/ttf.rb +0 -2
  40. data/lib/fontist/import/google/data_sources/vf.rb +0 -2
  41. data/lib/fontist/import/google/data_sources/woff2.rb +0 -2
  42. data/lib/fontist/import/google/data_sources.rb +13 -0
  43. data/lib/fontist/import/google/font_database.rb +0 -10
  44. data/lib/fontist/import/google/metadata_adapter.rb +0 -1
  45. data/lib/fontist/import/google/models/font_family.rb +0 -1
  46. data/lib/fontist/import/google/models/metadata.rb +1 -9
  47. data/lib/fontist/import/google/models/source_metadata.rb +0 -1
  48. data/lib/fontist/import/google/models.rb +16 -0
  49. data/lib/fontist/import/google.rb +7 -2
  50. data/lib/fontist/import/google_fonts_importer.rb +0 -5
  51. data/lib/fontist/import/google_import.rb +1 -8
  52. data/lib/fontist/import/helpers.rb +8 -0
  53. data/lib/fontist/import/macos.rb +0 -6
  54. data/lib/fontist/import/manual_formula_builder.rb +0 -2
  55. data/lib/fontist/import/models.rb +7 -0
  56. data/lib/fontist/import/otf/font_file.rb +0 -2
  57. data/lib/fontist/import/otf.rb +7 -0
  58. data/lib/fontist/import/recursive_extraction.rb +0 -5
  59. data/lib/fontist/import/sil_import.rb +0 -3
  60. data/lib/fontist/import/upgrade_formulas.rb +1 -11
  61. data/lib/fontist/import.rb +23 -0
  62. data/lib/fontist/import_cli.rb +0 -9
  63. data/lib/fontist/index.rb +0 -4
  64. data/lib/fontist/index_cli.rb +0 -2
  65. data/lib/fontist/indexes/base_font_collection_index.rb +0 -1
  66. data/lib/fontist/indexes/default_family_font_index.rb +0 -2
  67. data/lib/fontist/indexes/directory_snapshot.rb +0 -2
  68. data/lib/fontist/indexes/filename_index.rb +0 -2
  69. data/lib/fontist/indexes/font_index.rb +0 -3
  70. data/lib/fontist/indexes/fontist_index.rb +0 -2
  71. data/lib/fontist/indexes/incremental_index_updater.rb +0 -4
  72. data/lib/fontist/indexes/preferred_family_font_index.rb +0 -2
  73. data/lib/fontist/indexes/system_index.rb +0 -2
  74. data/lib/fontist/indexes/user_index.rb +0 -2
  75. data/lib/fontist/indexes.rb +18 -0
  76. data/lib/fontist/install_location.rb +0 -4
  77. data/lib/fontist/install_locations/fontist_location.rb +0 -2
  78. data/lib/fontist/install_locations/system_location.rb +0 -2
  79. data/lib/fontist/install_locations/user_location.rb +0 -2
  80. data/lib/fontist/install_locations.rb +8 -0
  81. data/lib/fontist/macos/catalog/asset.rb +0 -2
  82. data/lib/fontist/macos/catalog/base_parser.rb +0 -1
  83. data/lib/fontist/macos/catalog/catalog_manager.rb +0 -6
  84. data/lib/fontist/macos/catalog/font3_parser.rb +0 -2
  85. data/lib/fontist/macos/catalog/font4_parser.rb +0 -2
  86. data/lib/fontist/macos/catalog/font5_parser.rb +0 -2
  87. data/lib/fontist/macos/catalog/font6_parser.rb +0 -2
  88. data/lib/fontist/macos/catalog/font7_parser.rb +0 -2
  89. data/lib/fontist/macos/catalog/font8_parser.rb +0 -2
  90. data/lib/fontist/macos/catalog.rb +15 -0
  91. data/lib/fontist/macos.rb +5 -0
  92. data/lib/fontist/macos_import_source.rb +0 -2
  93. data/lib/fontist/manifest_request.rb +0 -1
  94. data/lib/fontist/manifest_response.rb +0 -1
  95. data/lib/fontist/resources.rb +7 -0
  96. data/lib/fontist/sil_import_source.rb +0 -2
  97. data/lib/fontist/system_font.rb +0 -2
  98. data/lib/fontist/system_index.rb +0 -4
  99. data/lib/fontist/utils/cache.rb +0 -2
  100. data/lib/fontist/utils/downloader.rb +0 -4
  101. data/lib/fontist/utils.rb +10 -8
  102. data/lib/fontist/validate_cli.rb +0 -4
  103. data/lib/fontist/validator.rb +0 -2
  104. data/lib/fontist/version.rb +1 -1
  105. data/lib/fontist.rb +83 -36
  106. metadata +19 -16
data/lib/fontist.rb CHANGED
@@ -1,14 +1,96 @@
1
1
  require "down"
2
2
  require "digest"
3
3
  require "singleton"
4
+ require "pathname"
5
+ require "lutaml/model"
4
6
 
5
7
  require_relative "fontist/errors"
6
8
  require_relative "fontist/version"
7
- require_relative "fontist/cache/manager"
9
+ require_relative "fontist/cache"
8
10
  require_relative "fontist/memoizable"
9
11
  require_relative "fontist/path_scanning"
12
+ require_relative "fontist/utils"
10
13
 
11
14
  module Fontist
15
+ # Core classes
16
+ autoload :Config, "#{__dir__}/fontist/config"
17
+ autoload :Font, "#{__dir__}/fontist/font"
18
+ autoload :FontCollection, "#{__dir__}/fontist/font_collection"
19
+ autoload :FontFile, "#{__dir__}/fontist/font_file"
20
+ autoload :FontInstaller, "#{__dir__}/fontist/font_installer"
21
+ autoload :FontModel, "#{__dir__}/fontist/font_model"
22
+ autoload :FontPath, "#{__dir__}/fontist/font_path"
23
+ autoload :FontStyle, "#{__dir__}/fontist/font_style"
24
+ autoload :Fontconfig, "#{__dir__}/fontist/fontconfig"
25
+ autoload :Formula, "#{__dir__}/fontist/formula"
26
+ autoload :FormulaCollection, "#{__dir__}/fontist/formula"
27
+ autoload :FormulaPicker, "#{__dir__}/fontist/formula_picker"
28
+ autoload :FormulaSuggestion, "#{__dir__}/fontist/formula_suggestion"
29
+ autoload :Helpers, "#{__dir__}/fontist/helpers"
30
+ autoload :Import, "#{__dir__}/fontist/import"
31
+ autoload :ImportSource, "#{__dir__}/fontist/import_source"
32
+ autoload :InstallLocation, "#{__dir__}/fontist/install_location"
33
+ autoload :StyleVersion, "#{__dir__}/fontist/style_version"
34
+ autoload :Update, "#{__dir__}/fontist/update"
35
+
36
+ # Index classes
37
+ autoload :Index, "#{__dir__}/fontist/index"
38
+ autoload :IndexEntry, "#{__dir__}/fontist/index"
39
+ autoload :IndexStats, "#{__dir__}/fontist/system_index"
40
+ autoload :SystemIndexFont, "#{__dir__}/fontist/system_index"
41
+ autoload :SystemIndexFontCollection, "#{__dir__}/fontist/system_index"
42
+ autoload :SystemIndex, "#{__dir__}/fontist/system_index"
43
+
44
+ # Data models
45
+ autoload :CollectionFile, "#{__dir__}/fontist/collection_file"
46
+ autoload :Extract, "#{__dir__}/fontist/extract"
47
+ autoload :ExtractOptions, "#{__dir__}/fontist/extract"
48
+ autoload :Resource, "#{__dir__}/fontist/formula"
49
+ autoload :ResourceCollection, "#{__dir__}/fontist/formula"
50
+
51
+ # Font sources
52
+ autoload :GoogleImportSource, "#{__dir__}/fontist/google_import_source"
53
+ autoload :MacosImportSource, "#{__dir__}/fontist/macos_import_source"
54
+ autoload :SilImportSource, "#{__dir__}/fontist/sil_import_source"
55
+ autoload :MacosFrameworkMetadata, "#{__dir__}/fontist/macos_framework_metadata"
56
+
57
+ # Manifest classes
58
+ autoload :Manifest, "#{__dir__}/fontist/manifest"
59
+ autoload :ManifestFont, "#{__dir__}/fontist/manifest"
60
+ autoload :ManifestRequest, "#{__dir__}/fontist/manifest_request"
61
+ autoload :ManifestRequestFont, "#{__dir__}/fontist/manifest_request"
62
+ autoload :ManifestResponse, "#{__dir__}/fontist/manifest_response"
63
+ autoload :ManifestResponseFont, "#{__dir__}/fontist/manifest_response"
64
+ autoload :ManifestResponseFontStyle, "#{__dir__}/fontist/manifest_response"
65
+
66
+ # System
67
+ autoload :Info, "#{__dir__}/fontist/repo"
68
+ autoload :Repo, "#{__dir__}/fontist/repo"
69
+ autoload :SystemFont, "#{__dir__}/fontist/system_font"
70
+
71
+ # CLI
72
+ autoload :CLI, "#{__dir__}/fontist/cli"
73
+ autoload :CacheCLI, "#{__dir__}/fontist/cache_cli"
74
+ autoload :ConfigCLI, "#{__dir__}/fontist/config_cli"
75
+ autoload :FontconfigCLI, "#{__dir__}/fontist/fontconfig_cli"
76
+ autoload :ImportCLI, "#{__dir__}/fontist/import_cli"
77
+ autoload :IndexCLI, "#{__dir__}/fontist/index_cli"
78
+ autoload :ManifestCLI, "#{__dir__}/fontist/manifest_cli"
79
+ autoload :RepoCLI, "#{__dir__}/fontist/repo_cli"
80
+ autoload :ThorExt, "#{__dir__}/fontist/cli/thor_ext"
81
+ autoload :Validation, "#{__dir__}/fontist/validation"
82
+ autoload :ValidationReport, "#{__dir__}/fontist/validation"
83
+ autoload :ValidationCache, "#{__dir__}/fontist/validation"
84
+ autoload :FontValidationResult, "#{__dir__}/fontist/validation"
85
+ autoload :Validator, "#{__dir__}/fontist/validator"
86
+ autoload :ValidateCLI, "#{__dir__}/fontist/validate_cli"
87
+
88
+ # Namespace modules
89
+ autoload :Indexes, "#{__dir__}/fontist/indexes"
90
+ autoload :InstallLocations, "#{__dir__}/fontist/install_locations"
91
+ autoload :Resources, "#{__dir__}/fontist/resources"
92
+ autoload :Macos, "#{__dir__}/fontist/macos"
93
+
12
94
  def self.ui
13
95
  Fontist::Utils::UI
14
96
  end
@@ -196,38 +278,3 @@ module Fontist
196
278
  true
197
279
  end
198
280
  end
199
-
200
- require_relative "fontist/repo"
201
- require_relative "fontist/font"
202
- require_relative "fontist/formula"
203
- require_relative "fontist/system_font"
204
- require_relative "fontist/manifest"
205
- require_relative "fontist/manifest_response"
206
- require_relative "fontist/manifest_request"
207
- require_relative "fontist/helpers"
208
- require_relative "fontist/config"
209
- require_relative "fontist/update"
210
- require_relative "fontist/index"
211
- require_relative "fontist/indexes/incremental_scanner"
212
- require_relative "fontist/indexes/directory_snapshot"
213
- require_relative "fontist/indexes/directory_change"
214
- require_relative "fontist/indexes/incremental_index_updater"
215
- require_relative "fontist/indexes/font_index"
216
- require_relative "fontist/indexes/filename_index"
217
- require_relative "fontist/indexes/fontist_index"
218
- require_relative "fontist/indexes/user_index"
219
- require_relative "fontist/indexes/system_index"
220
- require_relative "fontist/cli"
221
- require_relative "fontist/font_installer"
222
- require_relative "fontist/fontconfig"
223
- require_relative "fontist/formula_picker"
224
- require_relative "fontist/formula_suggestion"
225
- require_relative "fontist/extract"
226
- require_relative "fontist/font_style"
227
- require_relative "fontist/font_collection"
228
- require_relative "fontist/import"
229
- require_relative "fontist/import_source"
230
- require_relative "fontist/macos_import_source"
231
- require_relative "fontist/google_import_source"
232
- require_relative "fontist/sil_import_source"
233
- require_relative "fontist/macos_framework_metadata"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fontist
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 2.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-03-11 00:00:00.000000000 Z
11
+ date: 2026-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: down
@@ -120,20 +120,6 @@ dependencies:
120
120
  - - "~>"
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0.7'
123
- - !ruby/object:Gem::Dependency
124
- name: lutaml-xsd
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
128
- - !ruby/object:Gem::Version
129
- version: '1.0'
130
- type: :runtime
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
135
- - !ruby/object:Gem::Version
136
- version: '1.0'
137
123
  - !ruby/object:Gem::Dependency
138
124
  name: marcel
139
125
  requirement: !ruby/object:Gem::Requirement
@@ -334,7 +320,12 @@ files:
334
320
  - docs/guide/how-it-works.md
335
321
  - docs/guide/index.md
336
322
  - docs/guide/installation.md
323
+ - docs/guide/maintainer/import.md
324
+ - docs/guide/maintainer/index.md
337
325
  - docs/guide/manifests.md
326
+ - docs/guide/platforms/index.md
327
+ - docs/guide/platforms/macos.md
328
+ - docs/guide/platforms/windows.md
338
329
  - docs/guide/proxy.md
339
330
  - docs/guide/quick-start.md
340
331
  - docs/guide/why.md
@@ -357,6 +348,7 @@ files:
357
348
  - formula_index.yml
358
349
  - google-fonts-multi-format-usage.md
359
350
  - lib/fontist.rb
351
+ - lib/fontist/cache.rb
360
352
  - lib/fontist/cache/manager.rb
361
353
  - lib/fontist/cache/store.rb
362
354
  - lib/fontist/cache_cli.rb
@@ -386,6 +378,7 @@ files:
386
378
  - lib/fontist/import.rb
387
379
  - lib/fontist/import/convert_formulas.rb
388
380
  - lib/fontist/import/create_formula.rb
381
+ - lib/fontist/import/files.rb
389
382
  - lib/fontist/import/files/collection_file.rb
390
383
  - lib/fontist/import/files/font_detector.rb
391
384
  - lib/fontist/import/font_metadata_extractor.rb
@@ -395,6 +388,7 @@ files:
395
388
  - lib/fontist/import/formula_serializer.rb
396
389
  - lib/fontist/import/google.rb
397
390
  - lib/fontist/import/google/api.rb
391
+ - lib/fontist/import/google/data_sources.rb
398
392
  - lib/fontist/import/google/data_sources/base.rb
399
393
  - lib/fontist/import/google/data_sources/github.rb
400
394
  - lib/fontist/import/google/data_sources/ttf.rb
@@ -404,6 +398,7 @@ files:
404
398
  - lib/fontist/import/google/metadata.proto
405
399
  - lib/fontist/import/google/metadata_adapter.rb
406
400
  - lib/fontist/import/google/metadata_parser.rb
401
+ - lib/fontist/import/google/models.rb
407
402
  - lib/fontist/import/google/models/axis.rb
408
403
  - lib/fontist/import/google/models/axis_metadata.rb
409
404
  - lib/fontist/import/google/models/file_metadata.rb
@@ -414,13 +409,16 @@ files:
414
409
  - lib/fontist/import/google/models/source_metadata.rb
415
410
  - lib/fontist/import/google_fonts_importer.rb
416
411
  - lib/fontist/import/google_import.rb
412
+ - lib/fontist/import/helpers.rb
417
413
  - lib/fontist/import/helpers/hash_helper.rb
418
414
  - lib/fontist/import/helpers/system_helper.rb
419
415
  - lib/fontist/import/import_display.rb
420
416
  - lib/fontist/import/macos.rb
421
417
  - lib/fontist/import/macos/macos_license.txt
422
418
  - lib/fontist/import/manual_formula_builder.rb
419
+ - lib/fontist/import/models.rb
423
420
  - lib/fontist/import/models/font_metadata.rb
421
+ - lib/fontist/import/otf.rb
424
422
  - lib/fontist/import/otf/font_file.rb
425
423
  - lib/fontist/import/recursive_extraction.rb
426
424
  - lib/fontist/import/sil_import.rb
@@ -431,6 +429,7 @@ files:
431
429
  - lib/fontist/import_source.rb
432
430
  - lib/fontist/index.rb
433
431
  - lib/fontist/index_cli.rb
432
+ - lib/fontist/indexes.rb
434
433
  - lib/fontist/indexes/base_font_collection_index.rb
435
434
  - lib/fontist/indexes/default_family_font_index.rb
436
435
  - lib/fontist/indexes/directory_change.rb
@@ -446,10 +445,13 @@ files:
446
445
  - lib/fontist/indexes/system_index.rb
447
446
  - lib/fontist/indexes/user_index.rb
448
447
  - lib/fontist/install_location.rb
448
+ - lib/fontist/install_locations.rb
449
449
  - lib/fontist/install_locations/base_location.rb
450
450
  - lib/fontist/install_locations/fontist_location.rb
451
451
  - lib/fontist/install_locations/system_location.rb
452
452
  - lib/fontist/install_locations/user_location.rb
453
+ - lib/fontist/macos.rb
454
+ - lib/fontist/macos/catalog.rb
453
455
  - lib/fontist/macos/catalog/asset.rb
454
456
  - lib/fontist/macos/catalog/base_parser.rb
455
457
  - lib/fontist/macos/catalog/catalog_manager.rb
@@ -469,6 +471,7 @@ files:
469
471
  - lib/fontist/path_scanning.rb
470
472
  - lib/fontist/repo.rb
471
473
  - lib/fontist/repo_cli.rb
474
+ - lib/fontist/resources.rb
472
475
  - lib/fontist/resources/apple_cdn_resource.rb
473
476
  - lib/fontist/resources/archive_resource.rb
474
477
  - lib/fontist/resources/google_resource.rb