class Prawn::Icon::Compatibility

Constants

SHIMS

@deprecated Use {Prawn::Icon::Compatibility.shims} instead

Attributes

key[RW]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/prawn/icon/compatibility.rb, line 30
def initialize(opts = {})
  self.key = opts.fetch(:key)
end
shims() click to toggle source
# File lib/prawn/icon/compatibility.rb, line 21
def shims
  @shims ||= YAML.load_file(
    Icon.configuration.font_directory.join('fa4', 'shims.yml').to_s
  )
end

Public Instance Methods

translate(io = $stderr) click to toggle source
# File lib/prawn/icon/compatibility.rb, line 34
def translate(io = $stderr)
  @translate ||= if key.start_with?('fa-')
                   map.tap { |replaced| warning(replaced, key, io) }
                 else
                   key
                 end
end

Private Instance Methods

map() click to toggle source
# File lib/prawn/icon/compatibility.rb, line 44
def map
  self.class.shims.fetch(key) do
    # FontAwesome shim metadata assumes "fas" as the default
    # font family if not explicity referenced.
    "fas-#{key.sub(/fa-/, '')}"
  end
end
warning(new_key, old_key, io) click to toggle source
# File lib/prawn/icon/compatibility.rb, line 52
      def warning(new_key, old_key, io)
        io.puts <<~DEPRECATION
          [Prawn::Icon - DEPRECATION WARNING]
            FontAwesome 4 icon was referenced as '#{old_key}'.
            Use the FontAwesome 5 icon '#{new_key}' instead.
            This compatibility layer will be removed in Prawn::Icon 4.0.0.
        DEPRECATION
      end