tabulo 2.0.2 → 2.1.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
  SHA256:
3
- metadata.gz: 29ccac7f8f8f35e1d74b9e29eea3a94470cb0b16835c0d1ef78f2e1481f0440e
4
- data.tar.gz: 87358166e6a07b3e08c230a163d2bb5cb0ad49fb2b5b060440bbc2e17b8a4785
3
+ metadata.gz: 6f88dea9e9986d3d6483bb082ff61131192f8c347f5a8ef8d9bb1db020d327ce
4
+ data.tar.gz: 5fac068d5c1966a942246bf5ca404d0d21e9169337d024873b4d20c83c563a49
5
5
  SHA512:
6
- metadata.gz: 68ca443c73c20a45a173e2bf1b6adfc29ed29e8d36e3e4d5b840dcee166d3d8fcdf63ca33663267a76a1e17e95e1869496aff9a10fec0a1813cb81b73f89ee8a
7
- data.tar.gz: 9aea6493fe1f7db0f85308bfc8ad2cc7c7904e19c7a498e035e344dfc2f78b17b06a17042024e0019f6b1df9cec651deffe4fc27c87f0a6b127513f36f12c134
6
+ metadata.gz: 6979e838018800f81ca9fb062d34fdd4c19068efac1b5442998ec1f9b9808ec4d43a9aa5f91306abdc7535016bc1efd947af3b394bb93fd1be2b3979dd65c523
7
+ data.tar.gz: f764c67975c9409ab0b3646af6f396cb76407490940179e16071527ab6bf00a08a87a8aa62c1b7b8f4d21ada8ae1d25bdb34ed6eebdec4d22f22910331e01f60
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ### v2.1.0
4
+
5
+ * New `:reduced_ascii` and `:reduced_modern` border options
6
+ * Fix `column_width` option not properly inherited from original table by the new table created
7
+ by calling #transpose.
8
+
3
9
  ### v2.0.2
4
10
 
5
11
  * Minor documentation fixes
data/README.md CHANGED
@@ -560,11 +560,11 @@ A `Tabulo::Row` can also
560
560
  be converted to a `Hash` for keyed access. For example:
561
561
 
562
562
  ```ruby
563
- table = Tabulo::Table.new(1..5, :itself, :even?, :odd?)
563
+ table = Tabulo::Table.new(1..3, :itself, :even?, :odd?)
564
564
 
565
565
  table.each do |row|
566
- row.each { |cell| puts cell.value } # 1...2...3...4...5
567
- puts row.to_h[:even?].value # false...true...false...true...false
566
+ row.each { |cell| puts cell.value } # 1, false, true...2, true, false...3, false, true
567
+ puts row.to_h[:even?].value # false...true...false
568
568
  end
569
569
  ```
570
570
 
@@ -575,15 +575,15 @@ the column; and it need not be the same as the column header. If we want the hea
575
575
  to the label, we can achieve this using the `header` option to `add_column`:
576
576
 
577
577
  ```ruby
578
- table = Tabulo::Table.new(1..5) do |t|
578
+ table = Tabulo::Table.new(1..3) do |t|
579
579
  t.add_column("Number") { |n| n }
580
580
  t.add_column(:doubled, header: "Number X 2") { |n| n * 2 }
581
581
  end
582
582
 
583
583
  table.each do |row|
584
584
  cells = row.to_h
585
- puts cells[:Number].value # 1...2...3...4...5
586
- puts cells[:doubled].value # 2...4...6...8...10
585
+ puts cells[:Number].value # 1...2...3...
586
+ puts cells[:doubled].value # 2...4...6...
587
587
  end
588
588
  ```
589
589
 
@@ -651,7 +651,7 @@ a new table in which the rows and columns are swapped:
651
651
  By default, a header row is added to the new table, showing the string value of the element
652
652
  represented in that column. This can be configured, however, along with other aspects of
653
653
  `transpose`'s behaviour. For details, see the
654
- [documentation](https://www.rubydoc.info/gems/tabulo/2.0.2/Tabulo/Table#transpose-instance_method).
654
+ [documentation](https://www.rubydoc.info/gems/tabulo/2.1.0/Tabulo/Table#transpose-instance_method).
655
655
 
656
656
  <a name="borders"></a>
657
657
  ### Configuring borders
@@ -706,6 +706,32 @@ This is done using the `border` option passed to `Table.new`. The options are as
706
706
  3 false true
707
707
  ```
708
708
 
709
+ `:reduced_ascii`&mdash;similar to `:ascii`, but without vertical lines:
710
+
711
+ ```
712
+ > puts Tabulo::Table.new(1...3, :itself, :even?, :odd?, border: :reduced_modern)
713
+ -------------- -------------- --------------
714
+ itself even? odd?
715
+ -------------- -------------- --------------
716
+ 1 false true
717
+ 2 true false
718
+ 3 false true
719
+ -------------- -------------- --------------
720
+ ```
721
+
722
+ `:reduced_modern`&mdash;similar to `:modern`, but without vertical lines:
723
+
724
+ ```
725
+ > puts Tabulo::Table.new(1...3, :itself, :even?, :odd?, border: :reduced_ascii)
726
+ ────────────── ────────────── ──────────────
727
+ itself even? odd?
728
+ ────────────── ────────────── ──────────────
729
+ 1 false true
730
+ 2 true false
731
+ 3 false true
732
+ ────────────── ────────────── ──────────────
733
+ ```
734
+
709
735
  `:classic`&mdash;reproduces the default behaviour in Tabulo v1; this is like the `:ascii` option,
710
736
  but without a bottom border:
711
737
 
@@ -821,14 +847,14 @@ The gem is available as open source under the terms of the [MIT
821
847
  License](http://opensource.org/licenses/MIT).
822
848
 
823
849
  [Gem Version]: https://rubygems.org/gems/tabulo
824
- [Documentation]: http://www.rubydoc.info/gems/tabulo/2.0.2
850
+ [Documentation]: http://www.rubydoc.info/gems/tabulo/2.1.0
825
851
  [Build Status]: https://travis-ci.org/matt-harvey/tabulo
826
852
  [Coverage Status]: https://coveralls.io/r/matt-harvey/tabulo
827
853
  [Code Climate]: https://codeclimate.com/github/matt-harvey/tabulo
828
854
  [Awesome Ruby]: https://github.com/markets/awesome-ruby#cli-utilities
829
855
 
830
856
  [GV img]: https://img.shields.io/gem/v/tabulo.svg
831
- [DC img]: https://img.shields.io/badge/documentation-v2.0.2-blue.svg
857
+ [DC img]: https://img.shields.io/badge/documentation-v2.1.0-blue.svg
832
858
  [BS img]: https://img.shields.io/travis/matt-harvey/tabulo.svg
833
859
  [CS img]: https://img.shields.io/coveralls/matt-harvey/tabulo.svg
834
860
  [CC img]: https://codeclimate.com/github/matt-harvey/tabulo/badges/gpa.svg
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.2
1
+ 2.1.0
data/lib/tabulo/border.rb CHANGED
@@ -34,6 +34,40 @@ module Tabulo
34
34
  divider_horizontal: "-",
35
35
  intersection: "+",
36
36
  },
37
+ reduced_ascii: {
38
+ corner_top_left: "",
39
+ corner_top_right: "",
40
+ corner_bottom_right: "",
41
+ corner_bottom_left: "",
42
+ edge_top: "-",
43
+ edge_right: "",
44
+ edge_bottom: "-",
45
+ edge_left: "",
46
+ tee_top: " ",
47
+ tee_right: "",
48
+ tee_bottom: " ",
49
+ tee_left: "",
50
+ divider_vertical: " ",
51
+ divider_horizontal: "-",
52
+ intersection: " ",
53
+ },
54
+ reduced_modern: {
55
+ corner_top_left: "",
56
+ corner_top_right: "",
57
+ corner_bottom_right: "",
58
+ corner_bottom_left: "",
59
+ edge_top: "─",
60
+ edge_right: "",
61
+ edge_bottom: "─",
62
+ edge_left: "",
63
+ tee_top: " ",
64
+ tee_right: "",
65
+ tee_bottom: " ",
66
+ tee_left: "",
67
+ divider_vertical: " ",
68
+ divider_horizontal: "─",
69
+ intersection: " ",
70
+ },
37
71
  markdown: {
38
72
  corner_top_left: "",
39
73
  corner_top_right: "",
data/lib/tabulo/table.rb CHANGED
@@ -74,12 +74,16 @@ module Tabulo
74
74
  # within the table to separate columns from each other and the header row from the Table body.
75
75
  # If <tt>nil</tt>, then the value of {DEFAULT_BORDER} will be used.
76
76
  # Possible values are:
77
- # - `:ascii` Uses ASCII characters only
78
- # - `:markdown` Produces a GitHub-flavoured Markdown table
79
- # - `:modern` Uses non-ASCII Unicode characters to render a border with smooth continuous lines
80
- # - `:blank` No border characters are rendered
81
- # - `:classic` Like `:ascii`, but does not have a horizontal line at the bottom of the
82
- # table. This reproduces the default behaviour in `tabulo` v1.
77
+ # - `:ascii` Uses ASCII characters only
78
+ # - `:markdown` Produces a GitHub-flavoured Markdown table
79
+ # - `:modern` Uses non-ASCII Unicode characters to render a border with smooth continuous lines
80
+ # - `:blank` No border characters are rendered
81
+ # - `:reduced_ascii` Like `:ascii`, but without left or right borders, and with internal vertical
82
+ # borders and intersection characters consisting of whitespace only
83
+ # - `:reduced_modern` Like `:modern`, but without left or right borders, and with internal vertical
84
+ # borders and intersection characters consisting of whitespace only
85
+ # - `:classic` Like `:ascii`, but does not have a horizontal line at the bottom of the
86
+ # table. This reproduces the default behaviour in `tabulo` v1.
83
87
  # @param [nil, #to_proc] border_styler (nil) A lambda or other callable object taking
84
88
  # a single parameter, representing a section of the table's borders (which for this purpose
85
89
  # include any horizontal and vertical lines inside the table), and returning a string.
@@ -100,7 +104,7 @@ module Tabulo
100
104
  @header_frequency = header_frequency
101
105
  @wrap_header_cells_to = wrap_header_cells_to
102
106
  @wrap_body_cells_to = wrap_body_cells_to
103
- @default_column_width = (column_width || DEFAULT_COLUMN_WIDTH)
107
+ @column_width = (column_width || DEFAULT_COLUMN_WIDTH)
104
108
  @align_header = align_header
105
109
  @align_body = align_body
106
110
 
@@ -212,7 +216,7 @@ module Tabulo
212
216
  header: (header || label).to_s,
213
217
  align_header: align_header || @align_header,
214
218
  align_body: align_body || @align_body,
215
- width: (width || @default_column_width),
219
+ width: (width || @column_width),
216
220
  formatter: formatter,
217
221
  extractor: (extractor || label.to_proc),
218
222
  styler: styler,
@@ -1,3 +1,3 @@
1
1
  module Tabulo
2
- VERSION = "2.0.2"
2
+ VERSION = "2.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tabulo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Harvey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-12 00:00:00.000000000 Z
11
+ date: 2019-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-screen