markdown-tables 0.0.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/markdown-tables.rb +11 -6
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce5cc9285eabf5477a6520866af564cd1d8f90b6
4
- data.tar.gz: 73042b5f303ff8d1c703a67d62244937206845f1
3
+ metadata.gz: 10ffe7f2352e6dce04a280d07a27c968f36a87ea
4
+ data.tar.gz: 128eb02c4f699e226b248957eebc260535290228
5
5
  SHA512:
6
- metadata.gz: 0d8a6a6fa9cd1029568c54c2e6da2d0145c5b06f6a9a0f68c9e09240bc0d3c6d4c26533d4c676a1f91385294893da1f6eab01e9affc0e6730e6c90079af52f54
7
- data.tar.gz: 56ac0af7a9e34b01ae7f2dfb0a2dd7c285cb06f9d3a86434268d4299aad09346004074411c04eafd7edc16ddd7ef1572c5797b69588851f3eeec33906685280a
6
+ metadata.gz: 78e9d514b7afbb39198c30e60ff2b9ccdcaefcda66b7d48096f5dd1e0c99c6315406e931f3f82178b4aa60e8383eb03c44be6d2da397f9f4d6c7e22e14c56157
7
+ data.tar.gz: 82f332402510d361145cbef7200a3e709dc94d1c04e3a9243b3fb20a9b7c6c91bea3591cd6052361275b1f121905f896f502ed232d407f4734f549912c4aecd0
@@ -36,9 +36,16 @@ class MarkdownTables
36
36
  # Convert a Markdown table into human-readable form.
37
37
  def self.plain_text(md_table)
38
38
  lines = md_table.split("\n")
39
- labels = lines[0].split('|')
40
39
  alignments = lines[1].split('|')
40
+ table_width = alignments.length
41
+
42
+ # Add back any any missing empty cells.
43
+ labels = lines[0].split('|')
44
+ labels.length < table_width && labels += [' '] * (table_width - labels.length)
41
45
  rows = lines[2..-1].map {|line| line.split('|')}
46
+ rows.each_index do |i|
47
+ rows[i].length < table_width && rows[i] += [' '] * (table_width - rows[i].length)
48
+ end
42
49
 
43
50
  # Replace non-breaking HTML characters with their plaintext counterparts.
44
51
  rows.each do |row|
@@ -90,13 +97,11 @@ class MarkdownTables
90
97
  # Sanity checks for make_table.
91
98
  private_class_method def self.validate(labels, data, align, is_rows)
92
99
  if labels.class != Array
93
- raise('labels must be an Array')
100
+ raise('labels must be an array')
94
101
  elsif data.class != Array || data.any? {|datum| datum.class != Array}
95
102
  raise('data must be a two-dimensional array')
96
103
  elsif labels.empty?
97
104
  raise('No column labels given')
98
- elsif data.empty?
99
- raise('No columns given')
100
105
  elsif data.all? {|datum| datum.empty?}
101
106
  raise('No cells given')
102
107
  elsif labels.any? {|label| !label.respond_to?(:to_s)}
@@ -104,9 +109,9 @@ class MarkdownTables
104
109
  elsif data.any? {|datum| datum.any? {|cell| !cell.respond_to?(:to_s)}}
105
110
  raise('One or more cells cannot be made into a string')
106
111
  elsif ![String, Array].include?(align.class)
107
- raise('align must be a String or Array')
112
+ raise('align must be a string or array')
108
113
  elsif align.class == Array && align.any? {|val| val.class != String}
109
- raise('One or more align values is not a String')
114
+ raise('One or more align values is not a string')
110
115
  elsif !is_rows && data.length > labels.length
111
116
  raise('Too many data columns given')
112
117
  elsif is_rows && data.any? {|row| row.length > labels.length}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown-tables
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris de Graaf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-16 00:00:00.000000000 Z
11
+ date: 2017-04-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: chrisadegraaf@gmail.com
@@ -40,5 +40,5 @@ rubyforge_project:
40
40
  rubygems_version: 2.6.8
41
41
  signing_key:
42
42
  specification_version: 4
43
- summary: Utilities for creating and displaying Markdown tables in Ruby.
43
+ summary: Utilities for creating and displaying Markdown tables in Ruby
44
44
  test_files: []