Class: Fontist::WindowsFodMetadata
- Inherits:
-
Object
- Object
- Fontist::WindowsFodMetadata
- Defined in:
- lib/fontist/windows_fod_metadata.rb
Overview
Metadata for Windows Features on Demand (FOD) font capabilities
Provides lookup methods to map between FOD capability names and their associated font families/filenames.
Constant Summary collapse
- DATA_PATH =
File.("import/windows/fod_capabilities.yml", __dir__)
Class Method Summary collapse
-
.all_capabilities ⇒ Array<String>
List of all capability names.
-
.all_font_names ⇒ Array<String>
Flat list of all FOD font family names.
-
.capability_for_font(font_name) ⇒ String?
Reverse lookup: font family name -> capability name.
-
.description_for_capability(cap_name) ⇒ String?
Get the description for a capability.
-
.fonts_for_capability(cap_name) ⇒ Hash?
Get all font families for a capability.
-
.metadata ⇒ Hash
Raw parsed YAML metadata.
-
.reset_cache ⇒ Object
private
Reset cached metadata (for testing).
Class Method Details
.all_capabilities ⇒ Array<String>
List of all capability names
49 50 51 |
# File 'lib/fontist/windows_fod_metadata.rb', line 49 def all_capabilities ["capabilities"].keys end |
.all_font_names ⇒ Array<String>
Flat list of all FOD font family names
40 41 42 43 44 |
# File 'lib/fontist/windows_fod_metadata.rb', line 40 def all_font_names ["capabilities"].flat_map do |_cap, data| data["fonts"].keys end end |
.capability_for_font(font_name) ⇒ String?
Reverse lookup: font family name -> capability name
16 17 18 |
# File 'lib/fontist/windows_fod_metadata.rb', line 16 def capability_for_font(font_name) reverse_map[font_name.downcase] end |
.description_for_capability(cap_name) ⇒ String?
Get the description for a capability
33 34 35 |
# File 'lib/fontist/windows_fod_metadata.rb', line 33 def description_for_capability(cap_name) .dig("capabilities", cap_name, "description") end |
.fonts_for_capability(cap_name) ⇒ Hash?
Get all font families for a capability
24 25 26 27 |
# File 'lib/fontist/windows_fod_metadata.rb', line 24 def fonts_for_capability(cap_name) cap = .dig("capabilities", cap_name) cap&.fetch("fonts", nil) end |
.metadata ⇒ Hash
Raw parsed YAML metadata
56 57 58 |
# File 'lib/fontist/windows_fod_metadata.rb', line 56 def @metadata ||= YAML.safe_load(File.read(DATA_PATH)) end |
.reset_cache ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Reset cached metadata (for testing)
62 63 64 65 |
# File 'lib/fontist/windows_fod_metadata.rb', line 62 def reset_cache @metadata = nil @reverse_map = nil end |