AbstractBlock
Public: Methods and constants for managing AsciiDoc table content in a document. It supports all three of AsciiDoc's table formats: psv, dsv and csv.
Public: A Hash mapping alignment abbreviations to alignments (horizontal and vertial) that can be applies to a table column or cell
Public: An Array of String keys that represent the table formats in AsciiDoc
Public: A String key that specifies the default table format in AsciiDoc (psv)
Public: A Hash mapping the AsciiDoc table formats to their default delimiters
Public: A Hash mapping styles abbreviations to styles that can be applied to a table column or cell
# File lib/asciidoctor/table.rb, line 57 def initialize(parent, attributes) super(parent, :table) @rows = Rows.new([], [], []) @columns = [] @has_header_option = attributes.has_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.has_key? 'pagewidth' @attributes['tableabswidth'] ||= ((@attributes['tablepcwidth'].to_f / 100) * @document.attributes['pagewidth']).round end end
Internal: Creates the Column objects from the column spec
returns nothing
# File lib/asciidoctor/table.rb, line 88 def create_columns(col_specs) total_width = 0 @columns = col_specs.inject([]) {|collector, col_spec| total_width += col_spec['width'] collector << Column.new(self, collector.size, col_spec) collector } if !@columns.empty? @attributes['colcount'] = @columns.size even_width = (100.0 / @columns.size).floor @columns.each {|c| c.assign_width(total_width, even_width) } end nil end
Internal: Returns whether the current row being processed is the header row
# File lib/asciidoctor/table.rb, line 81 def header_row? @has_header_option && @rows.body.size == 0 end
Public: Get the rendered String content for this Block. If the block has child blocks, the content method should cause them to be rendered and returned as content that can be included in the parent block's template.
# File lib/asciidoctor/table.rb, line 133 def render @document.playback_attributes @attributes renderer.render('block_table', self) end
Generated with the Darkfish Rdoc Generator 2.