Class: Prawn::Icon

Inherits:
Object
  • Object
show all
Defined in:
lib/prawn/icon.rb,
lib/prawn/icon/parser.rb,
lib/prawn/icon/version.rb,
lib/prawn/icon/font_data.rb

Overview

Easy icon font usage within Prawn. Currently supported icon fonts include: FontAwesome, Zurb Foundicons, and GitHub Octicons.

Icon Keys

Icon keys must be supplied to most Prawn::Icon methods. Keys map directly to a unicode character within the font that produces a given icon. As a rule, included icon keys should match the keys from the font provider. The icon key mapping is specified in the font’s legend_file, which is a YAML file located in Prawn::Icon::FONTDIR/font/font.yml.

Prawn::Icon

Houses the methods and interfaces necessary for rendering icons to the Prawn::Document.

Prawn::Icon::FontData

Used to store various information about an icon font, including the key-to-unicode mapping information. Also houses methods to cache and lazily load the requested font data on a document basis.

Prawn::Icon::Parser

Used to initially parse icons that are used with the inline_format: true option. The input string is parsed once for <icon></icon> tags, then the output is provided to Prawn’s internal formatted text parser.

Defined Under Namespace

Modules: Interface Classes: FontData, Parser

Constant Summary collapse

FONTDIR =
File.join \
File.expand_path('../../..', __FILE__), 'fonts'
VERSION =
'0.5.1'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, document, opts = {}) ⇒ Icon

Returns a new instance of Icon.



131
132
133
134
135
136
137
138
139
# File 'lib/prawn/icon.rb', line 131

def initialize(key, document, opts = {})
  @pdf     = document
  @set     = opts[:set] ||
             FontData.specifier_from_key(key)
  @data    = FontData.load(document, @set)
  @key     = strip_specifier_from_key(key)
  @unicode = @data.unicode(@key)
  @options = opts
end

Instance Attribute Details

#setObject (readonly)

Returns the value of attribute set.



129
130
131
# File 'lib/prawn/icon.rb', line 129

def set
  @set
end

#unicodeObject (readonly)

Returns the value of attribute unicode.



129
130
131
# File 'lib/prawn/icon.rb', line 129

def unicode
  @unicode
end

Instance Method Details

#renderObject



141
142
143
144
145
# File 'lib/prawn/icon.rb', line 141

def render
  @pdf.font(@data.path) do
    @pdf.text @unicode, @options
  end
end