### Home Classes Methods

### In Files

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

### Parent

Object

### Methods

- ::new
- #absolute_bottom
- #absolute_bottom_left
- #absolute_bottom_right
- #absolute_bounding_box
- #absolute_left
- #absolute_right
- #absolute_top
- #absolute_top_left
- #absolute_top_right
- #anchor
- #bottom
- #bottom_left
- #bottom_right
- #bounding_box
- #callback_objects
- #character_spacing
- #color
- #default_direction=
- #direction
- #font
- #height
- #include_trailing_white_space!
- #link
- #right
- #size
- #space_count
- #strikethrough_points
- #styles
- #subscript?
- #superscript?
- #text
- #top
- #top_left
- #top_right
- #underline_points
- #width
- #y_offset

### Files

- COPYING
- GPLv2
- GPLv3
- LICENSE

### Class/Module Index

Quicksearch

- Prawn
- Prawn::Core
- Prawn::Core::Page
- Prawn::Core::Page::GraphicsState
- Prawn::Core::Reference
- Prawn::Document
- Prawn::Document::BoundingBox
- Prawn::Document::ColumnBox
- Prawn::Document::GraphicsState
- Prawn::Document::Grid
- Prawn::Document::Internals
- Prawn::Document::PageGeometry
- Prawn::Document::Security
- Prawn::Document::Snapshot
- Prawn::Encoding
- Prawn::Errors
- Prawn::Font
- Prawn::Font::AFM
- Prawn::Font::DFont
- Prawn::Font::TTF
- Prawn::GraphicState
- Prawn::GraphicStateStack
- Prawn::Graphics
- Prawn::Graphics::CapStyle
- Prawn::Graphics::Color
- Prawn::Graphics::Dash
- Prawn::Graphics::Gradient
- Prawn::Graphics::JoinStyle
- Prawn::Graphics::Transformation
- Prawn::Graphics::Transparency
- Prawn::Images
- Prawn::Images::JPG
- Prawn::Images::PNG
- Prawn::Layout
- Prawn::Measurements
- Prawn::Outline
- Prawn::Stamp
- Prawn::Table
- Prawn::Table::Cell
- Prawn::Table::Cell::InTable
- Prawn::Table::Cell::Subtable
- Prawn::Table::Cell::Text
- Prawn::Table::Cells
- Prawn::Text
- Prawn::Text::Box
- Prawn::Text::Formatted
- Prawn::Text::Formatted::Box
- Prawn::Text::Formatted::Fragment
- Prawn::Text::Formatted::Parser
- Arcfour
- Numeric

No matching classes.

# Prawn::Text::Formatted::Fragment

Prawn::Text::Formatted::Fragment is a state store for a formatted text fragment. It does not render anything.

### Attributes

ascender[RW]
baseline[RW]
descender[RW]
format_state[R]
left[RW]
line_height[RW]
width[W]
word_spacing[RW]

### Public Class Methods

new(text, format_state, document) click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 22
    def initialize(text, format_state, document)
      @text = text
      @format_state = format_state
      @document = document
      @word_spacing = 0
    end

### Public Instance Methods

absolute_bottom() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 192
    def absolute_bottom
      absolute_bounding_box[1]
    end

absolute_bottom_left() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 204
    def absolute_bottom_left
      [absolute_left, absolute_bottom]
    end

absolute_bottom_right() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 208
    def absolute_bottom_right
      [absolute_right, absolute_bottom]
    end

absolute_bounding_box() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 76
    def absolute_bounding_box
      box = bounding_box
      box[0] += @document.bounds.absolute_left
      box[2] += @document.bounds.absolute_left
      box[1] += @document.bounds.absolute_bottom
      box[3] += @document.bounds.absolute_bottom
      box
    end

absolute_left() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 180
    def absolute_left
      absolute_bounding_box[0]
    end

absolute_right() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 184
    def absolute_right
      absolute_bounding_box[2]
    end

absolute_top() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 188
    def absolute_top
      absolute_bounding_box[3]
    end

absolute_top_left() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 196
    def absolute_top_left
      [absolute_left, absolute_top]
    end

absolute_top_right() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 200
    def absolute_top_right
      [absolute_right, absolute_top]
    end

anchor() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 103
    def anchor
      @format_state[:anchor]
    end

bottom() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 160
    def bottom
      baseline - descender
    end

bottom_left() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 176
    def bottom_left
      [left, bottom]
    end

bottom_right() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 172
    def bottom_right
      [right, bottom]
    end

bounding_box() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 72
    def bounding_box
      [left, bottom, right, top]
    end

callback_objects() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 141
    def callback_objects
      callback = @format_state[:callback]
      if callback.nil?
        []
      elsif callback.is_a?(Array)
        callback
      else
        [callback]
      end
    end

character_spacing() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 119
    def character_spacing
      @format_state[:character_spacing] ||
        @document.character_spacing
    end

color() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 107
    def color
      @format_state[:color]
    end

default_direction=(direction) click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 128
    def default_direction=(direction)
      @format_state[:direction] = direction unless @format_state[:direction]
    end

direction() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 124
    def direction
      @format_state[:direction]
    end

font() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 111
    def font
      @format_state[:font]
    end

height() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 53
    def height
      top - bottom
    end

include_trailing_white_space!() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 132
    def include_trailing_white_space!
      @format_state.delete(:exclude_trailing_white_space)
    end

link() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 99
    def link
      @format_state[:link]
    end

right() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 152
    def right
      left + width
    end

size() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 115
    def size
      @format_state[:size]
    end

space_count() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 136
    def space_count
      string = exclude_trailing_white_space? ? @text.rstrip : @text
      string.count(" ")
    end

strikethrough_points() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 90
    def strikethrough_points
      y = baseline + ascender * 0.3
      [[left, y], [right, y]]
    end

styles() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 95
    def styles
      @format_state[:styles] || []
    end

subscript?() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 57
    def subscript?
      styles.include?(:subscript)
    end

superscript?() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 61
    def superscript?
      styles.include?(:superscript)
    end

text() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 29
    def text
      string = strip_zero_width_spaces(@text)
      if exclude_trailing_white_space?
        string = string.rstrip
        string = process_soft_hyphens(string)
      end
      case direction
      when :rtl
        if ruby_18 { true }
          string.scan(/./u).reverse.join
        else
          string.reverse
        end
      else
        string
      end
    end

top() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 156
    def top
      baseline + ascender
    end

top_left() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 164
    def top_left
      [left, top]
    end

top_right() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 168
    def top_right
      [right, top]
    end

underline_points() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 85
    def underline_points
      y = baseline - 1.25
      [[left, y], [right, y]]
    end

width() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 47
    def width
      if @word_spacing == 0 then @width
      else @width + @word_spacing * space_count
      end
    end

y_offset() click to toggle source

    # File lib/prawn/text/formatted/fragment.rb, line 65
    def y_offset
      if subscript? then -descender
      elsif superscript? then 0.85 * ascender
      else 0
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.