Class: Bddgenx::FontLoader
- Inherits:
-
Object
- Object
- Bddgenx::FontLoader
- Defined in:
- lib/bddgenx/support/font_loader.rb
Overview
Gerencia o carregamento de fontes TTF para os documentos PDF.
Class Method Summary collapse
-
.families ⇒ Hash{String => Hash<Symbol, String>}
Cria o hash de famílias de fontes para registro no Prawn.
-
.fonts_path ⇒ String
Retorna o caminho absoluto para a pasta assets/fonts dentro da gem.
Class Method Details
.families ⇒ Hash{String => Hash<Symbol, String>}
Cria o hash de famílias de fontes para registro no Prawn
Verifica se os arquivos de fonte DejaVuSansMono incluem normal, bold, italic e bold_italic e têm tamanho mínimo aceitável. Se estiverem ausentes ou corrompidas, retorna hash vazio para usar fallback.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/bddgenx/support/font_loader.rb', line 26 def self.families base = fonts_path return {} unless Dir.exist?(base) arquivos = { normal: File.join(base, 'DejaVuSansMono.ttf'), bold: File.join(base, 'DejaVuSansMono-Bold.ttf'), italic: File.join(base, 'DejaVuSansMono-Oblique.ttf'), bold_italic: File.join(base, 'DejaVuSansMono-BoldOblique.ttf') } # Verifica existência e tamanho mínimo de cada arquivo if arquivos.values.all? { |path| File.file?(path) && File.size(path) > 12 } { 'DejaVuSansMono' => arquivos } else warn I18n.t('errors.font_fallback', font: base) {} end end |
.fonts_path ⇒ String
Retorna o caminho absoluto para a pasta assets/fonts dentro da gem
13 14 15 |
# File 'lib/bddgenx/support/font_loader.rb', line 13 def self.fonts_path File.('../../assets/fonts', __dir__) end |