class Asciidoctor::Table

def initialize parent, attributes

def initialize parent, attributes
  super parent, :table
  @rows = Rows.new
  @columns = []
  @has_header_option = attributes.key? 'header-option'
  # smell like we need a utility method here
  # to resolve an integer width from potential bogus input
  pcwidth = attributes['width']
  pcwidth_intval = pcwidth.to_i.abs
  if pcwidth_intval == 0 && pcwidth != '0' || pcwidth_intval > 100
    pcwidth_intval = 100
  end
  @attributes['tablepcwidth'] = pcwidth_intval
  if @document.attributes.key? 'pagewidth'
    @attributes['tableabswidth'] ||=
        ((@attributes['tablepcwidth'].to_f / 100) * @document.attributes['pagewidth']).round
  end
end