table-formatter 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c879cf9f1dbc62005f469f7bb47ba97db0a5b1aa
4
- data.tar.gz: 6bd2c0898902a152862529836da885c07e20c62f
3
+ metadata.gz: 1f6a98e686c8d03b85eb0ba220988a354cd432e3
4
+ data.tar.gz: 98ec59477c8a5c39fbd879533f2eb4750335fb94
5
5
  SHA512:
6
- metadata.gz: 88615ee2dbe61020008b9bb1e8c6229ca5542636a8f501eb214447c54b8789189bb5e67384e168f5ee8363246bd0830c53ec421abab7b205922f14268cd0657e
7
- data.tar.gz: 7c744c2bf61b9d41e5110506b4b90c3e45380af3b898c8b098d101ad1ddb72c41f2b8a2aabdab775b9b569f83fdf32d29820692af1a4a14fd27bfcc91d0cc9c7
6
+ metadata.gz: ad30b923559dd72717a87ec8451a1f3959fd78c851b9e1ef132efc21192bf9f1c47ab07e4ce1c3af653360952dad38b17e430f57db29d624d2d238c79a9238a3
7
+ data.tar.gz: 1c63d521280423e4b66f91b7eb4d37f4ad0f29be0ade538c117466015be1a7deecafd02a937b4d03d23b5a97c77ce4fbed32fd45ae1616db777ccb4ec9e19698
checksums.yaml.gz.sig CHANGED
Binary file
@@ -4,7 +4,7 @@
4
4
 
5
5
  class TableFormatter
6
6
 
7
- attr_accessor :source, :labels, :border, :divider, :markdown
7
+ attr_accessor :source, :labels, :border, :divider, :markdown, :col_justify
8
8
 
9
9
  def initialize(source: nil, labels: nil, border: true, wrap: true,
10
10
  divider: nil, markdown: false)
@@ -20,10 +20,30 @@ class TableFormatter
20
20
 
21
21
  end
22
22
 
23
- def display(width=nil, widths: nil, markdown: @markdown)
23
+ def justify(s, ajust)
24
+
25
+ a = s.split('|')
24
26
 
25
- return display_markdown(@source, @labels) if markdown
27
+ a2 = ajust.map.with_index do |x,i|
28
+
29
+ s = a[i+1]
30
+
31
+ case x
32
+ when :r
33
+ '-' * (s.length - 1) + ':'
34
+ when :l
35
+ ':' + '-' * (s.length - 1)
36
+ when
37
+ ':' + '-' * (s.length - 2) + ':'
38
+ end
39
+ end
26
40
 
41
+ "|%s|\n" % a2.join('|')
42
+
43
+ end
44
+
45
+ def display(width=nil, widths: nil, markdown: @markdown)
46
+
27
47
  if @labels then
28
48
 
29
49
  @align_cols, labels = [], []
@@ -36,6 +56,12 @@ class TableFormatter
36
56
  end
37
57
 
38
58
  end
59
+
60
+ @col_justify = @align_cols.map do |col|
61
+ {ljust: :l, rjust: :r, center: :c}[col]
62
+ end
63
+
64
+ return display_markdown(@source, labels) if markdown
39
65
 
40
66
  #width ||= @maxwidth
41
67
  @width = width
@@ -65,8 +91,11 @@ class TableFormatter
65
91
  def display_markdown(a, fields)
66
92
 
67
93
  print_row = -> (row, widths) do
68
- '| ' + row.map\
69
- .with_index {|y,i| y.to_s.ljust(widths[i])}.join(' | ') + " |\n"
94
+
95
+ '| ' + row.map.with_index do |y,i|
96
+ align = @align_cols ? @align_cols[i] : :ljust
97
+ y.to_s.method(align).call(widths[i])
98
+ end.join(' | ') + " |\n"
70
99
  end
71
100
 
72
101
  print_thline = -> (row, widths) do
@@ -83,8 +112,10 @@ class TableFormatter
83
112
  th = print_row.call(fields, widths)
84
113
  th_line = print_thline.call widths.map {|x| '-' * (x+1)}, widths
85
114
 
115
+ th_line2 = justify(th_line, @col_justify)
116
+
86
117
  tb = print_rows.call(a, widths)
87
- table = th + th_line + tb
118
+ table = th + th_line2 + tb
88
119
  end
89
120
 
90
121
  def fetch_column_widths(a)
@@ -153,7 +184,7 @@ class TableFormatter
153
184
  end
154
185
 
155
186
  def just(x)
156
-
187
+
157
188
  case x
158
189
  when /^:.*:$/
159
190
  [:center, x[1..-2]]
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table-formatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  3N7fAlUbFYq1qPg9cSfZni7dwYupZfs1vLjUbKCYyF3LGUR1jnLn4hkP1lFClWwy
32
32
  wGnSddXdhZVZSQ==
33
33
  -----END CERTIFICATE-----
34
- date: 2016-07-12 00:00:00.000000000 Z
34
+ date: 2016-11-07 00:00:00.000000000 Z
35
35
  dependencies: []
36
36
  description:
37
37
  email: james@r0bertson.co.uk
metadata.gz.sig CHANGED
Binary file