class SiSU_Tables::TableXMLdocbook

Public Class Methods

new(table,id='') click to toggle source
# File lib/sisu/xml_tables.rb, line 118
def initialize(table,id='')
  @table_obj,@id=table,id
end

Public Instance Methods

spaces() click to toggle source
# File lib/sisu/xml_tables.rb, line 121
def spaces
  Ax[:spaces]
end
table() click to toggle source
# File lib/sisu/xml_tables.rb, line 124
def table
  table_obj=@table_obj
  if table_obj.obj !~/^<table\s/m
    table_obj=table_rows_and_columns_array(table_obj)
  else p __LINE__; p caller
  end
  table_obj
end
table_rows_and_columns_array(table_obj) click to toggle source
# File lib/sisu/xml_tables.rb, line 132
    def table_rows_and_columns_array(table_obj) # provides basic (x)html table
      table_rows,nr=[],0
      table_obj.obj.split(Mx[:tc_c]).each do |table_row|
        table_row_with_columns=table_row.split(Mx[:tc_p])
        trc,nc=[],0
        table_row_with_columns.each do |c|
          c=c.gsub(/^(?:~|&nbsp;)$/,''). # tilde / empty cell
            gsub(/&nbsp;/,' ').
            gsub(/<:br>/,'<br />')
          trc <<= if table_obj.head_ and nr==0
            %{#{spaces*6}<entry>#{c}</entry>\n}
          else %{#{spaces*6}<entry>#{c}</entry>\n}
          end
          nc+=1
        end
        trc=(trc.is_a?(Array)) ? trc.flatten.join : trc
        trc = if table_obj.head_ and nr==0
          "#{spaces*4}<thead>\n#{spaces*5}<row>\n#{trc}#{spaces*5}</row>\n#{spaces*4}</thead>\n#{spaces*4}<tbody>\n"
        else
          "#{spaces*5}<row>\n#{trc}#{spaces*5}</row>\n"
        end
        nr+=1
        table_rows << trc
      end
      tbody_close=if table_obj.head_
        "#{spaces*4}</tbody>"
      else ''
      end
      table_rows=table_rows.flatten.join
      # include table_id <table id=''>
      table_obj.obj=%{#{spaces*3}<para #{@id}>
#{spaces*4}<table>
#{spaces*4}<tgroup cols="#{table_obj.cols}" align="char">
#{table_rows}#{tbody_close}
#{spaces*4}</tgroup>
#{spaces*4}</table>
#{spaces*3}</para>}
      table_obj
    end