Parent

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
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.