<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>examples/table_colspan.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -201,10 +201,12 @@ module Prawn
         @document.font.size C(:font_size) do
           renderable_data.each_with_index do |row,index|
             c = Prawn::Graphics::CellBlock.new(@document)
-            row.each_with_index do |e,i|     
+            
+            col_index = 0
+            row.each do |e|
               case C(:align)
               when Hash
-                align            = C(:align)[i]
+                align            = C(:align)[col_index]
               else
                 align            = C(:align)
               end   
@@ -215,7 +217,7 @@ module Prawn
               case e
               when Prawn::Graphics::Cell
                 e.document = @document
-                e.width    = @col_widths[i]
+                e.width    = @col_widths[col_index]
                 e.horizontal_padding = C(:horizontal_padding)
                 e.vertical_padding   = C(:vertical_padding)    
                 e.border_width       = C(:border_width)
@@ -223,16 +225,25 @@ module Prawn
                 e.align              = align 
                 c &lt;&lt; e
               else
+                text = e.is_a?(Hash) ? e[:text] : e.to_s
+                width = if e.is_a?(Hash) &amp;&amp; e.has_key?(:colspan)
+                  @col_widths.slice(col_index, e[:colspan]).inject { |sum, width| sum + width }
+                else
+                  @col_widths[col_index]
+                end
+                
                 c &lt;&lt; Prawn::Graphics::Cell.new(
                   :document =&gt; @document, 
-                  :text     =&gt; e.to_s, 
-                  :width    =&gt; @col_widths[i],
+                  :text     =&gt; text,
+                  :width    =&gt; width,
                   :horizontal_padding =&gt; C(:horizontal_padding),
                   :vertical_padding   =&gt; C(:vertical_padding),
                   :border_width       =&gt; C(:border_width),
                   :border_style       =&gt; :sides,
                   :align              =&gt; align ) 
-              end   
+              end
+              
+              col_index += (e.is_a?(Hash) &amp;&amp; e.has_key?(:colspan)) ? e[:colspan] : 1
             end
                                                 
             bbox = @parent_bounds.stretchy? ? @document.margin_box : @parent_bounds</diff>
      <filename>lib/prawn/document/table.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4c04d52a0a5cda8d86081010bf3329ba72693d77</id>
    </parent>
  </parents>
  <author>
    <name>Anton Dyachuk</name>
    <email>anton.dyachuk@gmail.com</email>
  </author>
  <url>http://github.com/sandal/prawn/commit/b5f32d98312d1e096e0dbaea471b32c180314175</url>
  <id>b5f32d98312d1e096e0dbaea471b32c180314175</id>
  <committed-date>2008-11-23T22:57:48-08:00</committed-date>
  <authored-date>2008-11-23T22:57:48-08:00</authored-date>
  <message>table colspan option</message>
  <tree>d9f65377b79595aadc9f2ce05d64fbcc567fee90</tree>
  <committer>
    <name>Anton Dyachuk</name>
    <email>anton.dyachuk@gmail.com</email>
  </committer>
</commit>
