class Magick::RVG::Utility::LRTextStrategy

def get_letter_spacing(glyph)

def get_letter_spacing(glyph)
  gx, gy = glyph_metrics(@ctx.text_attrs.glyph_orientation_horizontal, glyph)
  [gx + @ctx.text_attrs.letter_spacing, gy]
end

def get_word_spacing

def get_word_spacing
  @word_space ||= glyph_metrics(@ctx.text_attrs.glyph_orientation_horizontal, ' ')[0]
  [@word_space + @ctx.text_attrs.word_spacing, 0]
end

def render(x, y, text)

def render(x, y, text)
  x_rel_coords, y_rel_coords = text_rel_coords(text)
  dx = x_rel_coords.reduce(0) { |sum, a| sum + a }
  dy = y_rel_coords.max
  # We're handling the anchoring.
  @ctx.gc.push
  @ctx.gc.text_anchor(Magick::StartAnchor)
  if @ctx.text_attrs.text_anchor == :end
    x -= dx
  elsif @ctx.text_attrs.text_anchor == :middle
    x -= dx / 2
  end
  # Align the first glyph
  case @ctx.text_attrs.glyph_orientation_horizontal
  when 90
    y -= dy
  when 180
    x += x_rel_coords.shift
    x_rel_coords << 0
    y -= dy
  when 270
    x += x_rel_coords[0]
  end
  y += shift_baseline(@ctx.text_attrs.glyph_orientation_horizontal, text[0, 1])
  first_word = true
  text.split(::Magick::RVG::WORD_SEP).each do |word|
    x += x_rel_coords.shift unless first_word
    first_word = false
    word.split('').each do |glyph|
      render_glyph(@ctx.text_attrs.glyph_orientation_horizontal, x, y, glyph)
      x += x_rel_coords.shift
    end
  end
  @ctx.gc.pop
  [dx, 0]
end