Module: Fontist::PathScanning

Defined in:
lib/fontist/path_scanning.rb

Constant Summary collapse

FONT_EXTENSIONS =
[
  ".ttf", ".TTF", ".ttc", ".TTC",
  ".otf", ".OTF", ".otc", ".OTC",
  ".woff", ".woff2", ".WOFF", ".WOFF2"
].freeze

Class Method Summary collapse

Class Method Details

.glob_font_files(pattern) ⇒ Object

Glob-based font file scanning with filtering Use this for recursive patterns or multiple directories



28
29
30
# File 'lib/fontist/path_scanning.rb', line 28

def glob_font_files(pattern)
  Dir.glob(pattern).select { |f| font_file?(f) }.uniq
end

.list_font_directory(directory) ⇒ Object

More efficient than glob for just listing fonts in a directory Returns: Array of full paths to font files



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/fontist/path_scanning.rb', line 14

def list_font_directory(directory)
  return [] unless Dir.exist?(directory)

  # Use Dir.children (faster than glob for just listing)
  Dir.children(directory).select do |filename|
    FONT_EXTENSIONS.any? { |ext| filename.end_with?(ext) }
  end.map { |filename| File.join(directory, filename) }
rescue Errno::EACCES, Errno::EPERM
  # Handle permission errors gracefully
  []
end