fontist 2.1.3 → 2.1.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 (169) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +70 -0
  3. data/.github/workflows/links.yml +100 -0
  4. data/.gitignore +3 -1
  5. data/Gemfile +1 -0
  6. data/docs/.vitepress/config.ts +170 -32
  7. data/docs/.vitepress/data/cli-commands.json +461 -0
  8. data/docs/.vitepress/data/exit-codes.json +21 -0
  9. data/docs/.vitepress/data/features.json +44 -0
  10. data/docs/.vitepress/theme/components/HeroCodeBlock.vue +98 -0
  11. data/docs/.vitepress/theme/components/WithinHero.vue +30 -0
  12. data/docs/.vitepress/theme/index.ts +12 -0
  13. data/docs/.vitepress/theme/style.css +152 -0
  14. data/docs/api/errors.md +211 -0
  15. data/docs/api/font.md +101 -0
  16. data/docs/api/fontconfig.md +82 -0
  17. data/docs/api/formula.md +103 -0
  18. data/docs/api/index.md +49 -0
  19. data/docs/api/manifest.md +209 -0
  20. data/docs/cli/cache.md +100 -0
  21. data/docs/cli/config.md +123 -0
  22. data/docs/cli/create-formula.md +71 -0
  23. data/docs/cli/exit-codes.md +73 -0
  24. data/docs/cli/fontconfig.md +85 -0
  25. data/docs/cli/import.md +140 -0
  26. data/docs/cli/index-cmd.md +37 -0
  27. data/docs/cli/index.md +80 -0
  28. data/docs/cli/install.md +52 -0
  29. data/docs/cli/list.md +39 -0
  30. data/docs/cli/manifest.md +110 -0
  31. data/docs/cli/repo.md +142 -0
  32. data/docs/cli/status.md +39 -0
  33. data/docs/cli/uninstall.md +34 -0
  34. data/docs/cli/update.md +31 -0
  35. data/docs/cli/version.md +38 -0
  36. data/docs/components/CliCommand.vue +77 -0
  37. data/docs/components/CliExamples.vue +17 -0
  38. data/docs/components/CliOptions.vue +26 -0
  39. data/docs/components/ExitCodes.vue +18 -0
  40. data/docs/guide/ci.md +4 -0
  41. data/docs/guide/concepts/fonts.md +158 -0
  42. data/docs/guide/concepts/formats.md +234 -0
  43. data/docs/guide/concepts/index.md +109 -0
  44. data/docs/guide/concepts/licenses.md +236 -0
  45. data/docs/guide/concepts/requirements.md +388 -0
  46. data/docs/guide/concepts/variable-fonts.md +212 -0
  47. data/docs/guide/formulas.md +265 -0
  48. data/docs/guide/how-it-works.md +428 -0
  49. data/docs/guide/index.md +26 -47
  50. data/docs/guide/installation.md +167 -0
  51. data/docs/guide/maintainer/import.md +372 -0
  52. data/docs/guide/maintainer/index.md +37 -0
  53. data/docs/guide/manifests.md +132 -0
  54. data/docs/guide/platforms/index.md +72 -0
  55. data/docs/guide/platforms/macos.md +151 -0
  56. data/docs/guide/platforms/windows.md +220 -0
  57. data/docs/guide/quick-start.md +76 -0
  58. data/docs/guide/why.md +4 -0
  59. data/docs/index.md +55 -23
  60. data/docs/lychee.toml +33 -0
  61. data/docs/package-lock.json +9 -114
  62. data/docs/package.json +3 -5
  63. data/docs/public/apple-touch-icon.png +0 -0
  64. data/docs/public/favicon-96x96.png +0 -0
  65. data/docs/public/favicon.ico +0 -0
  66. data/docs/public/favicon.svg +1 -0
  67. data/docs/public/logo-full.svg +1 -0
  68. data/docs/public/logo.svg +1 -0
  69. data/docs/public/site.webmanifest +21 -0
  70. data/docs/public/web-app-manifest-192x192.png +0 -0
  71. data/docs/public/web-app-manifest-512x512.png +0 -0
  72. data/fontist.gemspec +0 -1
  73. data/lib/fontist/cache/manager.rb +0 -2
  74. data/lib/fontist/cache.rb +6 -0
  75. data/lib/fontist/cli/thor_ext.rb +0 -2
  76. data/lib/fontist/cli.rb +0 -10
  77. data/lib/fontist/collection_file.rb +0 -3
  78. data/lib/fontist/font.rb +0 -6
  79. data/lib/fontist/font_collection.rb +0 -1
  80. data/lib/fontist/font_file.rb +0 -1
  81. data/lib/fontist/font_installer.rb +0 -5
  82. data/lib/fontist/font_model.rb +0 -1
  83. data/lib/fontist/font_path.rb +0 -2
  84. data/lib/fontist/formula.rb +0 -13
  85. data/lib/fontist/formula_picker.rb +0 -2
  86. data/lib/fontist/google_import_source.rb +0 -2
  87. data/lib/fontist/import/convert_formulas.rb +0 -2
  88. data/lib/fontist/import/create_formula.rb +0 -4
  89. data/lib/fontist/import/files/collection_file.rb +0 -1
  90. data/lib/fontist/import/files.rb +8 -0
  91. data/lib/fontist/import/font_metadata_extractor.rb +0 -1
  92. data/lib/fontist/import/formula_builder.rb +0 -6
  93. data/lib/fontist/import/google/api.rb +0 -9
  94. data/lib/fontist/import/google/data_sources/base.rb +0 -1
  95. data/lib/fontist/import/google/data_sources/github.rb +0 -3
  96. data/lib/fontist/import/google/data_sources/ttf.rb +0 -2
  97. data/lib/fontist/import/google/data_sources/vf.rb +0 -2
  98. data/lib/fontist/import/google/data_sources/woff2.rb +0 -2
  99. data/lib/fontist/import/google/data_sources.rb +13 -0
  100. data/lib/fontist/import/google/font_database.rb +0 -10
  101. data/lib/fontist/import/google/metadata_adapter.rb +0 -1
  102. data/lib/fontist/import/google/models/font_family.rb +0 -1
  103. data/lib/fontist/import/google/models/metadata.rb +1 -9
  104. data/lib/fontist/import/google/models/source_metadata.rb +0 -1
  105. data/lib/fontist/import/google/models.rb +16 -0
  106. data/lib/fontist/import/google.rb +7 -2
  107. data/lib/fontist/import/google_fonts_importer.rb +0 -5
  108. data/lib/fontist/import/google_import.rb +1 -8
  109. data/lib/fontist/import/helpers.rb +8 -0
  110. data/lib/fontist/import/macos.rb +0 -6
  111. data/lib/fontist/import/manual_formula_builder.rb +0 -2
  112. data/lib/fontist/import/models.rb +7 -0
  113. data/lib/fontist/import/otf/font_file.rb +0 -2
  114. data/lib/fontist/import/otf.rb +7 -0
  115. data/lib/fontist/import/recursive_extraction.rb +0 -5
  116. data/lib/fontist/import/sil_import.rb +0 -3
  117. data/lib/fontist/import/upgrade_formulas.rb +1 -11
  118. data/lib/fontist/import.rb +23 -0
  119. data/lib/fontist/import_cli.rb +0 -9
  120. data/lib/fontist/index.rb +0 -4
  121. data/lib/fontist/index_cli.rb +0 -2
  122. data/lib/fontist/indexes/base_font_collection_index.rb +0 -1
  123. data/lib/fontist/indexes/default_family_font_index.rb +0 -2
  124. data/lib/fontist/indexes/directory_snapshot.rb +0 -2
  125. data/lib/fontist/indexes/filename_index.rb +0 -2
  126. data/lib/fontist/indexes/font_index.rb +0 -3
  127. data/lib/fontist/indexes/fontist_index.rb +0 -2
  128. data/lib/fontist/indexes/incremental_index_updater.rb +0 -4
  129. data/lib/fontist/indexes/preferred_family_font_index.rb +0 -2
  130. data/lib/fontist/indexes/system_index.rb +0 -2
  131. data/lib/fontist/indexes/user_index.rb +0 -2
  132. data/lib/fontist/indexes.rb +18 -0
  133. data/lib/fontist/install_location.rb +0 -4
  134. data/lib/fontist/install_locations/fontist_location.rb +0 -2
  135. data/lib/fontist/install_locations/system_location.rb +0 -2
  136. data/lib/fontist/install_locations/user_location.rb +0 -2
  137. data/lib/fontist/install_locations.rb +8 -0
  138. data/lib/fontist/macos/catalog/asset.rb +0 -2
  139. data/lib/fontist/macos/catalog/base_parser.rb +0 -1
  140. data/lib/fontist/macos/catalog/catalog_manager.rb +0 -6
  141. data/lib/fontist/macos/catalog/font3_parser.rb +0 -2
  142. data/lib/fontist/macos/catalog/font4_parser.rb +0 -2
  143. data/lib/fontist/macos/catalog/font5_parser.rb +0 -2
  144. data/lib/fontist/macos/catalog/font6_parser.rb +0 -2
  145. data/lib/fontist/macos/catalog/font7_parser.rb +0 -2
  146. data/lib/fontist/macos/catalog/font8_parser.rb +0 -2
  147. data/lib/fontist/macos/catalog.rb +15 -0
  148. data/lib/fontist/macos.rb +5 -0
  149. data/lib/fontist/macos_import_source.rb +0 -2
  150. data/lib/fontist/manifest_request.rb +0 -1
  151. data/lib/fontist/manifest_response.rb +0 -1
  152. data/lib/fontist/resources.rb +7 -0
  153. data/lib/fontist/sil_import_source.rb +0 -2
  154. data/lib/fontist/system_font.rb +0 -2
  155. data/lib/fontist/system_index.rb +0 -4
  156. data/lib/fontist/utils/cache.rb +0 -2
  157. data/lib/fontist/utils/downloader.rb +0 -4
  158. data/lib/fontist/utils.rb +10 -8
  159. data/lib/fontist/validate_cli.rb +0 -4
  160. data/lib/fontist/validator.rb +0 -2
  161. data/lib/fontist/version.rb +1 -1
  162. data/lib/fontist.rb +82 -36
  163. metadata +75 -22
  164. data/.github/workflows/deploy-pages.yml +0 -54
  165. data/.github/workflows/release.yml.orig +0 -36
  166. data/docs/guide/api-ruby.md +0 -189
  167. data/docs/public/hero.png +0 -0
  168. data/docs/public/logo.png +0 -0
  169. data/docs/reference/index.md +0 -143
@@ -5,12 +5,10 @@
5
5
  "packages": {
6
6
  "": {
7
7
  "devDependencies": {
8
- "@types/node": "^25.0.0",
8
+ "@types/node": "^22.15.0",
9
9
  "prettier": "^3.8.1",
10
10
  "typescript": "^5.9.3",
11
- "vitepress": "^1.6.4",
12
- "vue": "^3.5.29",
13
- "vue-tsc": "^3.2.5"
11
+ "vitepress": "^1.6.4"
14
12
  }
15
13
  },
16
14
  "node_modules/@algolia/abtesting": {
@@ -1277,13 +1275,13 @@
1277
1275
  "license": "MIT"
1278
1276
  },
1279
1277
  "node_modules/@types/node": {
1280
- "version": "25.3.3",
1281
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz",
1282
- "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==",
1278
+ "version": "22.19.15",
1279
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz",
1280
+ "integrity": "sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==",
1283
1281
  "dev": true,
1284
1282
  "license": "MIT",
1285
1283
  "dependencies": {
1286
- "undici-types": "~7.18.0"
1284
+ "undici-types": "~6.21.0"
1287
1285
  }
1288
1286
  },
1289
1287
  "node_modules/@types/unist": {
@@ -1321,35 +1319,6 @@
1321
1319
  "vue": "^3.2.25"
1322
1320
  }
1323
1321
  },
1324
- "node_modules/@volar/language-core": {
1325
- "version": "2.4.28",
1326
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz",
1327
- "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==",
1328
- "dev": true,
1329
- "license": "MIT",
1330
- "dependencies": {
1331
- "@volar/source-map": "2.4.28"
1332
- }
1333
- },
1334
- "node_modules/@volar/source-map": {
1335
- "version": "2.4.28",
1336
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz",
1337
- "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==",
1338
- "dev": true,
1339
- "license": "MIT"
1340
- },
1341
- "node_modules/@volar/typescript": {
1342
- "version": "2.4.28",
1343
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz",
1344
- "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==",
1345
- "dev": true,
1346
- "license": "MIT",
1347
- "dependencies": {
1348
- "@volar/language-core": "2.4.28",
1349
- "path-browserify": "^1.0.1",
1350
- "vscode-uri": "^3.0.8"
1351
- }
1352
- },
1353
1322
  "node_modules/@vue/compiler-core": {
1354
1323
  "version": "3.5.29",
1355
1324
  "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.29.tgz",
@@ -1440,22 +1409,6 @@
1440
1409
  "rfdc": "^1.4.1"
1441
1410
  }
1442
1411
  },
1443
- "node_modules/@vue/language-core": {
1444
- "version": "3.2.5",
1445
- "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.5.tgz",
1446
- "integrity": "sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==",
1447
- "dev": true,
1448
- "license": "MIT",
1449
- "dependencies": {
1450
- "@volar/language-core": "2.4.28",
1451
- "@vue/compiler-dom": "^3.5.0",
1452
- "@vue/shared": "^3.5.0",
1453
- "alien-signals": "^3.0.0",
1454
- "muggle-string": "^0.4.1",
1455
- "path-browserify": "^1.0.1",
1456
- "picomatch": "^4.0.2"
1457
- }
1458
- },
1459
1412
  "node_modules/@vue/reactivity": {
1460
1413
  "version": "3.5.29",
1461
1414
  "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.29.tgz",
@@ -1643,13 +1596,6 @@
1643
1596
  "node": ">= 14.0.0"
1644
1597
  }
1645
1598
  },
1646
- "node_modules/alien-signals": {
1647
- "version": "3.1.2",
1648
- "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz",
1649
- "integrity": "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==",
1650
- "dev": true,
1651
- "license": "MIT"
1652
- },
1653
1599
  "node_modules/birpc": {
1654
1600
  "version": "2.9.0",
1655
1601
  "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz",
@@ -2058,13 +2004,6 @@
2058
2004
  "dev": true,
2059
2005
  "license": "MIT"
2060
2006
  },
2061
- "node_modules/muggle-string": {
2062
- "version": "0.4.1",
2063
- "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
2064
- "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
2065
- "dev": true,
2066
- "license": "MIT"
2067
- },
2068
2007
  "node_modules/nanoid": {
2069
2008
  "version": "3.3.11",
2070
2009
  "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -2096,13 +2035,6 @@
2096
2035
  "regex-recursion": "^6.0.2"
2097
2036
  }
2098
2037
  },
2099
- "node_modules/path-browserify": {
2100
- "version": "1.0.1",
2101
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
2102
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
2103
- "dev": true,
2104
- "license": "MIT"
2105
- },
2106
2038
  "node_modules/perfect-debounce": {
2107
2039
  "version": "1.0.0",
2108
2040
  "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
@@ -2117,19 +2049,6 @@
2117
2049
  "dev": true,
2118
2050
  "license": "ISC"
2119
2051
  },
2120
- "node_modules/picomatch": {
2121
- "version": "4.0.3",
2122
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
2123
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
2124
- "dev": true,
2125
- "license": "MIT",
2126
- "engines": {
2127
- "node": ">=12"
2128
- },
2129
- "funding": {
2130
- "url": "https://github.com/sponsors/jonschlinkert"
2131
- }
2132
- },
2133
2052
  "node_modules/postcss": {
2134
2053
  "version": "8.5.8",
2135
2054
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
@@ -2393,9 +2312,9 @@
2393
2312
  }
2394
2313
  },
2395
2314
  "node_modules/undici-types": {
2396
- "version": "7.18.2",
2397
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
2398
- "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
2315
+ "version": "6.21.0",
2316
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
2317
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
2399
2318
  "dev": true,
2400
2319
  "license": "MIT"
2401
2320
  },
@@ -2604,13 +2523,6 @@
2604
2523
  }
2605
2524
  }
2606
2525
  },
2607
- "node_modules/vscode-uri": {
2608
- "version": "3.1.0",
2609
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
2610
- "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
2611
- "dev": true,
2612
- "license": "MIT"
2613
- },
2614
2526
  "node_modules/vue": {
2615
2527
  "version": "3.5.29",
2616
2528
  "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.29.tgz",
@@ -2633,23 +2545,6 @@
2633
2545
  }
2634
2546
  }
2635
2547
  },
2636
- "node_modules/vue-tsc": {
2637
- "version": "3.2.5",
2638
- "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.5.tgz",
2639
- "integrity": "sha512-/htfTCMluQ+P2FISGAooul8kO4JMheOTCbCy4M6dYnYYjqLe3BExZudAua6MSIKSFYQtFOYAll7XobYwcpokGA==",
2640
- "dev": true,
2641
- "license": "MIT",
2642
- "dependencies": {
2643
- "@volar/typescript": "2.4.28",
2644
- "@vue/language-core": "3.2.5"
2645
- },
2646
- "bin": {
2647
- "vue-tsc": "bin/vue-tsc.js"
2648
- },
2649
- "peerDependencies": {
2650
- "typescript": ">=5.0.0"
2651
- }
2652
- },
2653
2548
  "node_modules/zwitch": {
2654
2549
  "version": "2.0.4",
2655
2550
  "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
data/docs/package.json CHANGED
@@ -7,11 +7,9 @@
7
7
  },
8
8
  "type": "module",
9
9
  "devDependencies": {
10
- "@types/node": "^25.0.0",
10
+ "@types/node": "^22.15.0",
11
11
  "prettier": "^3.8.1",
12
- "typescript": "^5.9.3",
13
- "vitepress": "^1.6.4",
14
- "vue": "^3.5.29",
15
- "vue-tsc": "^3.2.5"
12
+ "typescript": "^5.9.0",
13
+ "vitepress": "^1.6.4"
16
14
  }
17
15
  }
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" id="uuid-c6d7bb0b-ce20-4c4f-b0df-e25e79a561a7" viewBox="0 0 500 500" width="500" height="500"><path d="M64.43,140.29h67.44v13.2h-48.96v180h48.96v13.2h-67.44v-206.4Z" style="fill:#4d4b54;"></path><path d="M352.67,333.5h48.96v-180h-48.96v-13.2h67.44v206.4h-67.44v-13.2Z" style="fill:#4d4b54;"></path><path d="M237.77,169.8c4.32-20.16,8.64-39.6,16.92-54.36,9.36-16.92,24.12-33.48,55.08-33.48,21.96,0,34.2,10.8,34.2,26.28,0,10.44-6.84,15.84-14.4,15.84-9.72,0-13.32-6.48-14.4-14.04-1.44-9-2.16-17.64-10.8-17.64-18.36,0-27.36,21.24-32.76,51.84l-4.32,25.56h34.2l-2.16,14.76h-33.84l-20.52,122.76c-5.04,30.96-21.6,111.6-70.92,111.6-23.04,0-32.04-13.32-32.04-25.92,0-10.08,5.04-17.64,14.4-17.64,21.6,0,9.72,32.04,23.4,32.04,19.08,0,28.44-59.04,32.4-82.8l23.4-140.04h-30.24l1.44-14.76h30.96Z" style="fill:#bf4e6a;"></path></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="uuid-a0e7239a-a159-4ac7-ad72-8a6345d73e7f" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 500"><path d="M257.61,451.33c-14.44,6.96-31.78,5.55-41.96-7.84L67.48,248.75c-5.62-7.38-6.35-18.76-.56-25.73l75.41-90.8c3.17-3.82,7.58-5.34,12.06-7.47l160.97-76.62c14.33-6.82,30.68-3.53,42.04,7.07l105.12,142.11c2.69,5.58,5.13,10.27,8.53,15.28l55.82,82.24c5.37,7.91,6.05,23.69-4.06,28.56l-265.21,127.93ZM287.03,310.96l161.6-76.96c11.16-5.32,21.54-22.67,13.21-34.01l-105.49-143.66c-11.5-10.31-27.05-13.14-41.14-6.4l-166.89,79.87c-13.23,6.33-14.59,25.94-6.48,36.81l97.77,131.09c11.25,15.09,29.74,21.66,47.42,13.24ZM232.38,452.15c6.57,2.92,14.18,2.5,21.22-.89l267.88-128.95c8.75-4.21,9.43-18.42,4.56-25.6l-59.66-88.07c-1.3,13.05-7.4,22.31-18.52,27.6l-157.65,75.1c-9.63,4.59-18.53,5.83-29.47,4.16-6.26-3.25-13.52-5.43-18.2-11.67l-100.41-133.93c-6.12-8.16-7.99-15.97-6.35-27.06l-67.77,81.52c-5.01,6.03-4.38,16.57.54,23.04l148.59,195.3c3.88,5.09,9.36,7.96,15.25,9.45Z" style="fill:#676565;"/><path d="M287.03,310.96c-17.68,8.42-36.17,1.85-47.42-13.24l-97.77-131.09c-8.11-10.88-6.75-30.48,6.48-36.81l166.89-79.87c14.09-6.74,29.64-3.91,41.14,6.4l105.49,143.66c8.33,11.34-2.05,28.69-13.21,34.01l-161.6,76.96Z" style="fill:#e1dfd2;"/><path d="M232.38,452.15c1.96-4.82,3.23-9.57,4.66-15.14l27.96-108.44c1.32-5.12-3.24-8.92-4.26-13.08,10.94,1.67,19.84.42,29.47-4.16l157.65-75.1c11.12-5.3,17.22-14.55,18.52-27.6l59.66,88.07c4.87,7.19,4.2,21.39-4.56,25.6l-267.88,128.95c-7.05,3.39-14.65,3.81-21.22.89Z" style="fill:#bebbac;"/><path d="M260.74,315.5c1.02,4.16,5.58,7.95,4.26,13.08l-27.96,108.44c-1.44,5.57-2.71,10.31-4.66,15.14-5.89-1.49-11.37-4.36-15.25-9.45L68.54,247.4c-4.92-6.47-5.55-17.01-.54-23.04l67.77-81.52c-1.64,11.09.23,18.9,6.35,27.06l100.41,133.93c4.68,6.24,11.94,8.42,18.2,11.67Z" style="fill:#dddac8;"/><polygon points="282.54 238.11 289.49 249.09 263.7 260.65 194.99 159.94 222.35 148.43 228.68 158.31 214.22 164.38 269.97 243.75 282.54 238.11" style="fill:#4d4b54;"/><polygon points="369.09 198.8 383.44 192.08 329.33 114.13 315.75 120.26 309.88 111.47 336 98.94 403.17 194.97 375.96 207.94 369.09 198.8" style="fill:#4d4b54;"/><path d="M292.11,160.41c9.03,15.98,17.59,31.55,25.28,48.2,7.43,16.09,16.44,39,4.36,54.53-5.6,7.2-13.93,10.74-22.32,9.15-3.42-.65-5.8-2.78-5.93-5.92-.12-2.78,1.59-5.75,4.93-6.61,2.7-.69,6.2-.29,8.92.64,5.17,1.76,9.75-.71,11.18-6.18,1.14-4.4.26-9.46-1.57-13.97-4.76-11.73-10.73-22.33-17-33.4l-21.8-38.5c-.25-.44-6.36-11.42-6.36-11.42-2.87-6.21-16.16-25.52-5.57-44.8,5.23-9.53,15.89-15.13,26.35-12.59,3.15.76,5.82,3.09,6.27,5.63.57,3.22-1.12,6.43-4.3,7.81-8,3.48-12.19-4.65-17.66-2.08-7.12,3.35-3.91,13.49-1.03,19.02l10.48,20.15c2.29,4.41,1.97,3.58,5.79,10.33Z" style="fill:#bf4e6a;"/><polygon points="266.05 179.81 260.64 171.75 310.91 148.47 315.92 155.96 266.05 179.81" style="fill:#bf4e6a;"/><path d="M703.28,220.77v144.67h-27.95v-144.67h-31.82v-24.08h31.99v-20.92c0-38.32,24.43-61.35,63.11-61.35,15.12,0,24.79,4.22,27.77,5.45l-3.34,22.68c-4.75-2.11-13.54-4.22-23.2-4.22-21.45,0-36.91,10.55-36.91,39.38v18.98h52.38v24.08h-52.03Z" style="fill:#bf4e6a;"/><path d="M863.6,193.17c51.33,0,89.65,38.5,89.65,87.89s-38.32,87.89-89.65,87.89-89.65-38.5-89.65-87.89,38.32-87.89,89.65-87.89ZM863.6,342.94c35.51,0,61.7-27.07,61.7-61.88s-26.19-61.88-61.7-61.88-61.7,27.07-61.7,61.88,26.19,61.88,61.7,61.88Z" style="fill:#bf4e6a;"/><path d="M1154.16,262.78v102.66h-27.77v-95.8c0-32.87-17.23-50.1-47.81-50.1-28.83,0-52.21,19.86-52.21,50.62v95.27h-27.95v-168.75h28.12v25.31c9.49-15.64,29.53-28.83,56.43-28.83,44.47,0,71.19,26.19,71.19,69.61Z" style="fill:#bf4e6a;"/><path d="M1246.27,220.77v91.23c0,22.15,11.95,31.82,29.18,31.82,9.14,0,20.74-1.76,28.83-4.75l3.69,24.08c-7.21,3.16-21.8,5.8-35.51,5.8-32.52,0-54.14-17.93-54.14-52.38v-95.8h-31.11v-24.08h31.29v-54.14h27.6v54.14h53.96v24.08h-53.79Z" style="fill:#bf4e6a;"/><path d="M1339.26,140.09c0-10.2,7.03-17.23,17.23-17.23s17.58,7.03,17.58,17.23-7.38,17.4-17.58,17.4-17.23-7.21-17.23-17.4ZM1342.6,196.69h27.95v168.75h-27.95v-168.75Z" style="fill:#4d4b54;"/><path d="M1496.76,270.34c33.57,6.68,51.33,21.8,51.33,48.16,0,32.87-26.19,50.45-67.15,50.45-23.91,0-47.46-4.75-63.28-12.66l3.87-24.96c15.47,7.91,37.09,12.66,57.48,12.66,27.07,0,41.66-8.44,41.66-24.08s-13.01-21.45-36.74-26.02l-21.97-4.39c-27.95-5.45-45.88-20.21-45.88-46.23,0-30.06,26.54-50.1,68.55-50.1,20.39,0,40.96,3.87,54.14,9.32l-3.52,24.43c-13.71-5.45-32.34-8.96-48.87-8.96-27.42,0-42.54,9.14-42.54,24.61,0,14.59,11.6,19.69,35.33,24.26l17.58,3.52Z" style="fill:#4d4b54;"/><path d="M1629.65,220.77v91.23c0,22.15,11.95,31.82,29.18,31.82,9.14,0,20.74-1.76,28.83-4.75l3.69,24.08c-7.21,3.16-21.8,5.8-35.51,5.8-32.52,0-54.14-17.93-54.14-52.38v-95.8h-31.11v-24.08h31.29v-54.14h27.6v54.14h53.96v24.08h-53.79Z" style="fill:#4d4b54;"/></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="uuid-bbbd5b2f-b286-4c12-becd-414fca1ebde9" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500"><path d="M210.8,451.33c-14.44,6.96-31.78,5.55-41.96-7.84L20.67,248.75c-5.62-7.38-6.35-18.76-.56-25.73l75.41-90.8c3.17-3.82,7.58-5.34,12.06-7.47l160.97-76.62c14.33-6.82,30.68-3.53,42.04,7.07l105.12,142.11c2.69,5.58,5.13,10.27,8.53,15.28l55.82,82.24c5.37,7.91,6.05,23.69-4.06,28.56l-265.21,127.93ZM240.21,310.96l161.6-76.96c11.16-5.32,21.54-22.67,13.21-34.01l-105.49-143.66c-11.5-10.31-27.05-13.14-41.14-6.4l-166.89,79.87c-13.23,6.33-14.59,25.94-6.48,36.81l97.77,131.09c11.25,15.09,29.74,21.66,47.42,13.24ZM185.57,452.15c6.57,2.92,14.18,2.5,21.22-.89l267.88-128.95c8.75-4.21,9.43-18.42,4.56-25.6l-59.66-88.07c-1.3,13.05-7.4,22.31-18.52,27.6l-157.65,75.1c-9.63,4.59-18.53,5.83-29.47,4.16-6.26-3.25-13.52-5.43-18.2-11.67l-100.41-133.93c-6.12-8.16-7.99-15.97-6.35-27.06L21.19,224.36c-5.01,6.03-4.38,16.57.54,23.04l148.59,195.3c3.88,5.09,9.36,7.96,15.25,9.45Z" style="fill:#676565;"/><path d="M240.21,310.96c-17.68,8.42-36.17,1.85-47.42-13.24l-97.77-131.09c-8.11-10.88-6.75-30.48,6.48-36.81l166.89-79.87c14.09-6.74,29.64-3.91,41.14,6.4l105.49,143.66c8.33,11.34-2.05,28.69-13.21,34.01l-161.6,76.96Z" style="fill:#e1dfd2;"/><path d="M185.57,452.15c1.96-4.82,3.23-9.57,4.66-15.14l27.96-108.44c1.32-5.12-3.24-8.92-4.26-13.08,10.94,1.67,19.84.42,29.47-4.16l157.65-75.1c11.12-5.3,17.22-14.55,18.52-27.6l59.66,88.07c4.87,7.19,4.2,21.39-4.56,25.6l-267.88,128.95c-7.05,3.39-14.65,3.81-21.22.89Z" style="fill:#bebbac;"/><path d="M213.93,315.5c1.02,4.16,5.58,7.95,4.26,13.08l-27.96,108.44c-1.44,5.57-2.71,10.31-4.66,15.14-5.89-1.49-11.37-4.36-15.25-9.45L21.73,247.4c-4.92-6.47-5.55-17.01-.54-23.04l67.77-81.52c-1.64,11.09.23,18.9,6.35,27.06l100.41,133.93c4.68,6.24,11.94,8.42,18.2,11.67Z" style="fill:#dddac8;"/><polygon points="235.73 238.11 242.68 249.09 216.89 260.65 148.18 159.94 175.53 148.43 181.86 158.31 167.41 164.38 223.16 243.75 235.73 238.11" style="fill:#4d4b54;"/><polygon points="322.28 198.8 336.63 192.08 282.52 114.13 268.93 120.26 263.07 111.47 289.19 98.94 356.36 194.97 329.15 207.94 322.28 198.8" style="fill:#4d4b54;"/><path d="M245.3,160.41c9.03,15.98,17.59,31.55,25.28,48.2,7.43,16.09,16.44,39,4.36,54.53-5.6,7.2-13.93,10.74-22.32,9.15-3.42-.65-5.8-2.78-5.93-5.92-.12-2.78,1.59-5.75,4.93-6.61,2.7-.69,6.2-.29,8.92.64,5.17,1.76,9.75-.71,11.18-6.18,1.14-4.4.26-9.46-1.57-13.97-4.76-11.73-10.73-22.33-17-33.4l-21.8-38.5c-.25-.44-6.36-11.42-6.36-11.42-2.87-6.21-16.16-25.52-5.57-44.8,5.23-9.53,15.89-15.13,26.35-12.59,3.15.76,5.82,3.09,6.27,5.63.57,3.22-1.12,6.43-4.3,7.81-8,3.48-12.19-4.65-17.66-2.08-7.12,3.35-3.91,13.49-1.03,19.02l10.48,20.15c2.29,4.41,1.97,3.58,5.79,10.33Z" style="fill:#bf4e6a;"/><polygon points="219.23 179.81 213.82 171.75 264.09 148.47 269.11 155.96 219.23 179.81" style="fill:#bf4e6a;"/></svg>
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Fontist",
3
+ "short_name": "Fontist",
4
+ "icons": [
5
+ {
6
+ "src": "/web-app-manifest-192x192.png",
7
+ "sizes": "192x192",
8
+ "type": "image/png",
9
+ "purpose": "maskable"
10
+ },
11
+ {
12
+ "src": "/web-app-manifest-512x512.png",
13
+ "sizes": "512x512",
14
+ "type": "image/png",
15
+ "purpose": "maskable"
16
+ }
17
+ ],
18
+ "theme_color": "#ffffff",
19
+ "background_color": "#ffffff",
20
+ "display": "standalone"
21
+ }
data/fontist.gemspec CHANGED
@@ -36,7 +36,6 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency "git", "> 1.0"
37
37
  spec.add_dependency "json", "~> 2.0"
38
38
  spec.add_dependency "lutaml-model", "~> 0.7"
39
- spec.add_dependency "lutaml-xsd", "~> 1.0"
40
39
  spec.add_dependency "marcel", "~> 1.0"
41
40
  spec.add_dependency "nokogiri", "~> 1.0"
42
41
  spec.add_dependency "octokit", "~> 4.0"
@@ -1,5 +1,3 @@
1
- require_relative "store"
2
-
3
1
  module Fontist
4
2
  module Cache
5
3
  # Central cache manager for font index caching operations
@@ -0,0 +1,6 @@
1
+ module Fontist
2
+ module Cache
3
+ autoload :Store, "#{__dir__}/cache/store"
4
+ autoload :Manager, "#{__dir__}/cache/manager"
5
+ end
6
+ end
@@ -1,5 +1,3 @@
1
- require "fontist/utils/ui"
2
-
3
1
  module Fontist
4
2
  module ThorExt
5
3
  # Sources:
data/lib/fontist/cli.rb CHANGED
@@ -1,14 +1,6 @@
1
1
  require "thor"
2
- require_relative "../fontist"
3
2
  require_relative "cli/class_options"
4
3
  require_relative "cli/thor_ext"
5
- require_relative "repo_cli"
6
- require_relative "cache_cli"
7
- require_relative "import_cli"
8
- require_relative "fontconfig_cli"
9
- require_relative "config_cli"
10
- require_relative "index_cli"
11
- require_relative "manifest_cli"
12
4
 
13
5
  module Fontist
14
6
  class CLI < Thor
@@ -249,7 +241,6 @@ module Fontist
249
241
  "e.g. 'Wine ' for compatibility fonts"
250
242
  def create_formula(url)
251
243
  handle_class_options(options)
252
- require "fontist/import/create_formula"
253
244
  name = Fontist::Import::CreateFormula.new(url, options).call
254
245
  Fontist.ui.say("#{name} formula has been successfully created")
255
246
  success
@@ -272,7 +263,6 @@ module Fontist
272
263
  desc "macos-catalogs", "List available macOS font catalogs"
273
264
  def macos_catalogs
274
265
  handle_class_options(options)
275
- require_relative "macos/catalog/catalog_manager"
276
266
 
277
267
  catalogs = Fontist::Macos::Catalog::CatalogManager.available_catalogs
278
268
 
@@ -1,5 +1,4 @@
1
1
  require "fontisan"
2
- require_relative "errors"
3
2
 
4
3
  module Fontist
5
4
  class CollectionFile
@@ -18,8 +17,6 @@ module Fontist
18
17
  def build_collection(path)
19
18
  # Validate collection by checking it can be loaded
20
19
  # This uses fontisan's collection validation infrastructure
21
- require "fontisan"
22
-
23
20
  # First check if it's a valid collection file
24
21
  unless Fontisan::FontLoader.collection?(path)
25
22
  raise Errors::FontFileError,
data/lib/fontist/font.rb CHANGED
@@ -1,9 +1,3 @@
1
- require "fontist/font_installer"
2
- require "fontist/font_path"
3
- require "fontist/formula_picker"
4
- require "fontist/fontconfig"
5
- require "fontist/formula_suggestion"
6
-
7
1
  module Fontist
8
2
  class Font
9
3
  def initialize(options = {})
@@ -1,5 +1,4 @@
1
1
  require "lutaml/model"
2
- require_relative "font_model"
3
2
 
4
3
  module Fontist
5
4
  class FontCollection < Lutaml::Model::Serializable
@@ -1,6 +1,5 @@
1
1
  require "fontisan"
2
2
  require "tempfile"
3
- require_relative "errors"
4
3
 
5
4
  module Fontist
6
5
  class FontFile
@@ -1,9 +1,4 @@
1
- require "fontist/utils"
2
1
  require "excavate"
3
- require_relative "resources/archive_resource"
4
- require_relative "resources/google_resource"
5
- require_relative "resources/apple_cdn_resource"
6
- require_relative "install_location"
7
2
 
8
3
  module Fontist
9
4
  class FontInstaller
@@ -1,5 +1,4 @@
1
1
  require "lutaml/model"
2
- require_relative "font_style"
3
2
 
4
3
  module Fontist
5
4
  class FontModel < Lutaml::Model::Serializable
@@ -1,5 +1,3 @@
1
- require "fontist/indexes/filename_index"
2
-
3
1
  module Fontist
4
2
  class FontPath
5
3
  def initialize(path)
@@ -1,19 +1,7 @@
1
1
  require "lutaml/model"
2
- require_relative "font_model"
3
- require_relative "font_collection"
4
- require_relative "extract"
5
- require_relative "index"
6
- require_relative "helpers"
7
- require_relative "update"
8
- require_relative "import_source"
9
- require_relative "macos_import_source"
10
- require_relative "google_import_source"
11
- require_relative "sil_import_source"
12
2
  require "git"
13
3
 
14
4
  module Fontist
15
- require "lutaml/model"
16
-
17
5
  class Resource < Lutaml::Model::Serializable
18
6
  attribute :name, :string
19
7
  attribute :source, :string
@@ -280,7 +268,6 @@ module Fontist
280
268
  # Check if framework exists for this macOS version
281
269
  framework = Utils::System.catalog_version_for_macos
282
270
  if framework.nil?
283
- require_relative "macos_framework_metadata"
284
271
  raise Errors::UnsupportedMacOSVersionError.new(
285
272
  current_macos,
286
273
  MacosFrameworkMetadata.metadata,
@@ -1,5 +1,3 @@
1
- require "fontist/style_version"
2
-
3
1
  module Fontist
4
2
  class FormulaPicker
5
3
  def initialize(font_name, size_limit:, version:, smallest:, newest:)
@@ -1,5 +1,3 @@
1
- require_relative "import_source"
2
-
3
1
  module Fontist
4
2
  # Import source for Google Fonts
5
3
  #
@@ -1,5 +1,3 @@
1
- require_relative "formula_serializer"
2
-
3
1
  module Fontist
4
2
  module Import
5
3
  class ConvertFormulas
@@ -1,7 +1,3 @@
1
- require "fontist/import"
2
- require_relative "recursive_extraction"
3
- require_relative "formula_builder"
4
-
5
1
  module Fontist
6
2
  module Import
7
3
  class CreateFormula
@@ -1,5 +1,4 @@
1
1
  require "fontisan"
2
- require_relative "../otf/font_file"
3
2
 
4
3
  module Fontist
5
4
  module Import
@@ -0,0 +1,8 @@
1
+ module Fontist
2
+ module Import
3
+ module Files
4
+ autoload :CollectionFile, "#{__dir__}/files/collection_file"
5
+ autoload :FontDetector, "#{__dir__}/files/font_detector"
6
+ end
7
+ end
8
+ end
@@ -1,5 +1,4 @@
1
1
  require "fontisan"
2
- require_relative "models/font_metadata"
3
2
 
4
3
  module Fontist
5
4
  module Import
@@ -1,10 +1,4 @@
1
1
  require "shellwords"
2
- require_relative "text_helper"
3
- require_relative "helpers/hash_helper"
4
- require_relative "recursive_extraction"
5
- require_relative "../macos_import_source"
6
- require_relative "../google_import_source"
7
- require_relative "../sil_import_source"
8
2
 
9
3
  module Fontist
10
4
  module Import
@@ -1,12 +1,3 @@
1
- require_relative "models/axis"
2
- require_relative "models/font_variant"
3
- require_relative "models/font_family"
4
- require_relative "data_sources/base"
5
- require_relative "data_sources/ttf"
6
- require_relative "data_sources/vf"
7
- require_relative "data_sources/woff2"
8
- require_relative "font_database"
9
-
10
1
  module Fontist
11
2
  module Import
12
3
  module Google
@@ -1,7 +1,6 @@
1
1
  require "net/http"
2
2
  require "json"
3
3
  require "uri"
4
- require_relative "../models/font_family"
5
4
 
6
5
  module Fontist
7
6
  module Import
@@ -1,7 +1,4 @@
1
1
  require "unibuf"
2
- require_relative "../metadata_adapter"
3
- require_relative "../../otf/font_file"
4
- require_relative "../models/font_family"
5
2
  require "pathname"
6
3
 
7
4
  module Fontist
@@ -1,5 +1,3 @@
1
- require_relative "base"
2
-
3
1
  module Fontist
4
2
  module Import
5
3
  module Google
@@ -1,5 +1,3 @@
1
- require_relative "base"
2
-
3
1
  module Fontist
4
2
  module Import
5
3
  module Google
@@ -1,5 +1,3 @@
1
- require_relative "base"
2
-
3
1
  module Fontist
4
2
  module Import
5
3
  module Google
@@ -0,0 +1,13 @@
1
+ module Fontist
2
+ module Import
3
+ module Google
4
+ module DataSources
5
+ autoload :Base, "#{__dir__}/data_sources/base"
6
+ autoload :Github, "#{__dir__}/data_sources/github"
7
+ autoload :Ttf, "#{__dir__}/data_sources/ttf"
8
+ autoload :Vf, "#{__dir__}/data_sources/vf"
9
+ autoload :Woff2, "#{__dir__}/data_sources/woff2"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,12 +1,3 @@
1
- require_relative "models/font_family"
2
- require_relative "models/axis"
3
- require_relative "data_sources/ttf"
4
- require_relative "data_sources/vf"
5
- require_relative "data_sources/woff2"
6
- require_relative "data_sources/github"
7
- require_relative "../font_metadata_extractor"
8
- require_relative "../../utils/downloader"
9
- require_relative "../../google_import_source"
10
1
  require "yaml"
11
2
  require "fileutils"
12
3
 
@@ -404,7 +395,6 @@ github_data: nil, version: 4, source_path: nil)
404
395
  path = File.join(output_dir, filename)
405
396
 
406
397
  # Use HashHelper to convert keys to strings (preserves import_source object)
407
- require_relative "../helpers/hash_helper"
408
398
  formula_with_string_keys = Helpers::HashHelper.stringify_keys(formula_hash)
409
399
 
410
400
  File.write(path, YAML.dump(formula_with_string_keys))
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "unibuf"
4
- require_relative "models/metadata"
5
4
 
6
5
  module Fontist
7
6
  module Import
@@ -1,5 +1,4 @@
1
1
  require "lutaml/model"
2
- require_relative "axis"
3
2
 
4
3
  module Fontist
5
4
  module Import
@@ -1,9 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "lutaml/model"
4
- require_relative "font_file_metadata"
5
- require_relative "axis_metadata"
6
- require_relative "source_metadata"
4
+ require "unibuf"
7
5
 
8
6
  module Fontist
9
7
  module Import
@@ -74,9 +72,6 @@ module Fontist
74
72
  # @return [Metadata] parsed metadata object
75
73
  # @raise [ParseError] if file cannot be parsed
76
74
  def self.from_file(file_path)
77
- require "unibuf"
78
- require_relative "../metadata_adapter"
79
-
80
75
  unibuf_message = Unibuf.parse_textproto_file(file_path)
81
76
  MetadataAdapter.adapt(unibuf_message)
82
77
  end
@@ -87,9 +82,6 @@ module Fontist
87
82
  # @return [Metadata] parsed metadata object
88
83
  # @raise [ParseError] if content cannot be parsed
89
84
  def self.from_content(content)
90
- require "unibuf"
91
- require_relative "../metadata_adapter"
92
-
93
85
  unibuf_message = Unibuf.parse_textproto(content)
94
86
  MetadataAdapter.adapt(unibuf_message)
95
87
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "lutaml/model"
4
- require_relative "file_metadata"
5
4
 
6
5
  module Fontist
7
6
  module Import