Class: Arrolio::Renderer::FontRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/arrolio/renderer/font_registry.rb

Overview

Maps font family names to Pdfrb resource Symbols.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(document) ⇒ FontRegistry

Returns a new instance of FontRegistry.



9
10
11
12
# File 'lib/arrolio/renderer/font_registry.rb', line 9

def initialize(document)
  @document = document
  @refs = {}
end

Instance Attribute Details

#documentObject (readonly)

Returns the value of attribute document.



7
8
9
# File 'lib/arrolio/renderer/font_registry.rb', line 7

def document
  @document
end

Instance Method Details

#known_fontsObject



27
28
29
# File 'lib/arrolio/renderer/font_registry.rb', line 27

def known_fonts
  @refs.keys
end

#resolve(font_name) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/arrolio/renderer/font_registry.rb', line 14

def resolve(font_name)
  key = font_name.to_s
  return @refs[key] if @refs.key?(key)

  @refs[key] = begin
    ref = @document.fonts.add(key)
    ref || key.to_sym
  rescue StandardError
    fallback = @refs['Helvetica'] ||= @document.fonts.add('Helvetica')
    fallback
  end
end