Skip to content

Commit

Permalink
Fix ToRdoc#accept_table (#1184)
Browse files Browse the repository at this point in the history
  • Loading branch information
tompng authored Oct 3, 2024
1 parent ed00d1c commit 7b68545
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 4 deletions.
8 changes: 4 additions & 4 deletions lib/rdoc/markup/to_rdoc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,8 @@ def accept_verbatim verbatim
# Adds +table+ to the output

def accept_table header, body, aligns
widths = header.zip(body) do |h, b|
[h.size, b.size].max
widths = header.zip(*body).map do |cols|
cols.map(&:size).max
end
aligns = aligns.map do |a|
case a
Expand All @@ -262,12 +262,12 @@ def accept_table header, body, aligns
:rjust
end
end
@res << header.zip(widths, aligns) do |h, w, a|
@res << header.zip(widths, aligns).map do |h, w, a|
h.__send__(a, w)
end.join("|").rstrip << "\n"
@res << widths.map {|w| "-" * w }.join("|") << "\n"
body.each do |row|
@res << row.zip(widths, aligns) do |t, w, a|
@res << row.zip(widths, aligns).map do |t, w, a|
t.__send__(a, w)
end.join("|").rstrip << "\n"
end
Expand Down
17 changes: 17 additions & 0 deletions test/rdoc/support/text_formatter_test_case.rb
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,23 @@ def test_accept_paragraph_wrap
accept_paragraph_wrap
end

##
# Test case that calls <tt>@to.accept_table</tt>

def test_accept_table_align
header = ['AA', 'BB', 'CCCCC']
body = [
['', 'bbb', 'c'],
['aaaa', 'b', ''],
['a', '', 'cc']
]
aligns = [nil, :left, :right]
@to.start_accepting
@to.accept_table header, body, aligns

accept_table_align
end

##
# Test case that calls <tt>@to.attributes</tt> with an escaped
# cross-reference. If this test doesn't pass something may be very
Expand Down
11 changes: 11 additions & 0 deletions test/rdoc/test_rdoc_markup_to_ansi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,17 @@ def list_verbatim
assert_equal expected, @to.end_accepting
end

def accept_table_align
expected = "\e[0m" + <<-EXPECTED
AA |BB |CCCCC
----|---|-----
|bbb| c
aaaa|b |
a | | cc
EXPECTED
assert_equal expected, @to.end_accepting
end

# functional test
def test_convert_list_note
note_list = <<-NOTE_LIST
Expand Down
11 changes: 11 additions & 0 deletions test/rdoc/test_rdoc_markup_to_bs.rb
Original file line number Diff line number Diff line change
Expand Up @@ -349,4 +349,15 @@ def list_verbatim
assert_equal expected, @to.end_accepting
end

def accept_table_align
expected = <<-EXPECTED
AA |BB |CCCCC
----|---|-----
|bbb| c
aaaa|b |
a | | cc
EXPECTED
assert_equal expected, @to.end_accepting
end

end
11 changes: 11 additions & 0 deletions test/rdoc/test_rdoc_markup_to_markdown.rb
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,17 @@ def list_verbatim
assert_equal expected, @to.end_accepting
end

def accept_table_align
expected = <<-EXPECTED
AA |BB |CCCCC
----|---|-----
|bbb| c
aaaa|b |
a | | cc
EXPECTED
assert_equal expected, @to.end_accepting
end

def test_convert_RDOCLINK
result = @to.convert 'rdoc-garbage:C'

Expand Down
11 changes: 11 additions & 0 deletions test/rdoc/test_rdoc_markup_to_rdoc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,17 @@ def list_verbatim
assert_equal expected, @to.end_accepting
end

def accept_table_align
expected = <<-EXPECTED
AA |BB |CCCCC
----|---|-----
|bbb| c
aaaa|b |
a | | cc
EXPECTED
assert_equal expected, @to.end_accepting
end

# functional test
def test_convert_list_note
note_list = <<-NOTE_LIST
Expand Down

0 comments on commit 7b68545

Please sign in to comment.