### Home Classes Methods

### In Files

- lib/prawn/text/formatted/parser.rb

### Parent

Object

### Methods

- ::format
- ::to_string

### Class/Module Index

Quicksearch

- Prawn
- Prawn::Configurable
- Prawn::Document
- Prawn::Document::BoundingBox
- Prawn::Document::ColumnBox
- Prawn::Document::GraphicsState
- Prawn::Document::Grid
- Prawn::Document::GridBox
- Prawn::Document::Internals
- Prawn::Document::Security
- Prawn::Document::Snapshot
- Prawn::Encoding
- Prawn::Errors
- Prawn::Font
- Prawn::Font::AFM
- Prawn::Font::DFont
- Prawn::Font::TTF
- Prawn::FontMetricCache
- Prawn::Graphics
- Prawn::Graphics::CapStyle
- Prawn::Graphics::Color
- Prawn::Graphics::Dash
- Prawn::Graphics::JoinStyle
- Prawn::Graphics::Patterns
- Prawn::Graphics::Transformation
- Prawn::Graphics::Transparency
- Prawn::ImageHandler
- Prawn::Images
- Prawn::Images::Image
- Prawn::Images::JPG
- Prawn::Images::PNG
- Prawn::Measurements
- Prawn::SoftMask
- Prawn::Stamp
- Prawn::SynchronizedCache
- Prawn::Table
- Prawn::Table::Cell
- Prawn::Table::Cell::Image
- Prawn::Table::Cell::InTable
- Prawn::Table::Cell::SpanDummy
- Prawn::Table::Cell::Subtable
- Prawn::Table::Cell::Text
- Prawn::Table::Cells
- Prawn::Table::ColumnWidthCalculator
- Prawn::Text
- Prawn::Text::Box
- Prawn::Text::Formatted
- Prawn::Text::Formatted::Box
- Prawn::Text::Formatted::Fragment
- Prawn::Text::Formatted::Parser
- Prawn::ThreadLocalCache
- PDF
- PDF::Core
- PDF::Core::Reference
- PDF::Core::Stream
- Arcfour
- Numeric

No matching classes.

# Prawn::Text::Formatted::Parser

### Constants

PARSER_REGEX

  @group Extension API

### Public Class Methods

format(string, *args) click to toggle source

    # File lib/prawn/text/formatted/parser.rb, line 35
    def self.format(string, *args)
      tokens = string.gsub(/<br\s*\/?>/, "\n").scan(PARSER_REGEX)
      self.array_from_tokens(tokens)
    end

to_string(array) click to toggle source

    # File lib/prawn/text/formatted/parser.rb, line 40
    def self.to_string(array)
      prefixes = { :bold => "<b>",
                   :italic => "<i>",
                   :underline => "<u>",
                   :strikethrough => "<strikethrough>",
                   :subscript => "<sub>",
                   :superscript => "<sup>" }
      suffixes = { :bold => "</b>",
                   :italic => "</i>",
                   :underline => "</u>",
                   :strikethrough => "</strikethrough>",
                   :subscript => "</sub>",
                   :superscript => "</sup>" }
      array.collect do |hash|
        prefix = ""
        suffix = ""
        if hash[:styles]
          hash[:styles].each do |style|
            prefix = prefix + prefixes[style]
            suffix = suffixes[style] + suffix
          end
        end

        font = hash[:font] ? " name='#{hash[:font]}'" : nil
        size = hash[:size] ? " size='#{hash[:size]}'" : nil
        if hash[:character_spacing]
          character_spacing = " character_spacing='#{hash[:character_spacing]}'"
        else
          character_spacing = nil
        end
        if font || size || character_spacing
          prefix = prefix + "<font#{font}#{size}#{character_spacing}>"
          suffix = "</font>"
        end

        link = hash[:link] ? " href='#{hash[:link]}'" : nil
        anchor = hash[:anchor] ? " anchor='#{hash[:anchor]}'" : nil
        if link || anchor
          prefix = prefix + "<link#{link}#{anchor}>"
          suffix = "</link>"
        end

        if hash[:color]
          if hash[:color].kind_of?(Array)
            prefix = prefix + "<color c='#{hash[:color][0]}'" +
                                    " m='#{hash[:color][1]}'" +
                                    " y='#{hash[:color][2]}'" +
                                    " k='#{hash[:color][3]}'>"
          else
            prefix = prefix + "<color rgb='#{hash[:color]}'>"
          end
          suffix = "</color>"
        end

        string = hash[:text].gsub("&", "&amp;").gsub(">", "&gt;").gsub("<", "&lt;")
        prefix + string + suffix
      end.join
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.