tabulo 1.2.0 → 1.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5b182912c5f405049dd0098da2154e460ac625bb
4
- data.tar.gz: 7cbae37e2ce3779cd6ff70803392cdb21aae1358
2
+ SHA256:
3
+ metadata.gz: 8583d9f66b9305bb91dc45079567e811c60e839389c468ac963b2e49d1edc6a1
4
+ data.tar.gz: f89afda08a128532f113a7d36f1941ed638d745c7addf5761f068865eadbcdaa
5
5
  SHA512:
6
- metadata.gz: 929a1aa6ad4a46837e0d916dd67bfd6d01b664d214f9533bcf2d8c82da4509d17e2f220b02d9353f95d558e07e9908b62e97f18dbb86440242a8f1c36c89d587
7
- data.tar.gz: 449cea43dd183067878f3417729c18144dfd7a8e2016048b68b197e6d4bf936dfbf5a558e2e68453924fc6cadc9818e5388c2392474a5d91a26a933af7ea5d44
6
+ metadata.gz: 0c0f4a420b0dfd4624afaa857f2ba03c28e5decab3c1fcb867b40662d277f8071a6c75a22b7f9bb72adf7595bbd8e6616a4103be1c92fee5e228e2bdacff07f7
7
+ data.tar.gz: 86b81698a9bfa003ed01f80a314e0bf4c0c55569152ef326ef29a73091094c02d844b536e7729fb879bf2225c260d3640687d97d6bc08acf604863b3a08ee083
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
  **/.*.swp
11
11
  coverage
12
+ gh-md-toc
@@ -2,7 +2,7 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.1.10
5
- - 2.2.6
6
- - 2.3.3
7
- - 2.4.0
8
- before_install: gem install bundler -v 1.16.0
5
+ - 2.2.10
6
+ - 2.3.8
7
+ - 2.4.5
8
+ - 2.5.3
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ### v1.2.1
4
+
5
+ * Improve documentation in README.
6
+ * Update Travis config.
7
+ * Change homepage in Gemspec
8
+
3
9
  ### v1.2.0
4
10
 
5
11
  * Allow customization of padding.
data/README.md CHANGED
@@ -6,11 +6,13 @@
6
6
 
7
7
  ## Overview
8
8
 
9
- Tabulo generates ASCII tables.
9
+ Tabulo is a Ruby library for generating ASCII tables.
10
10
 
11
11
  ```ruby
12
- table = Tabulo::Table.new([1, 2, 50000000]) do |t|
13
- t.add_column("N", &:itself)
12
+ underyling_enumerable = [1, 2, 50000000] # need not be an array
13
+
14
+ table = Tabulo::Table.new(underlying_enumerable) do |t|
15
+ t.add_column("N") { |n| n }
14
16
  t.add_column("Doubled") { |n| n * 2 }
15
17
  end
16
18
  ```
@@ -27,6 +29,8 @@ end
27
29
 
28
30
  ## Features
29
31
 
32
+ * A [DRY interface](#configuring-columns) that relieves the developer of maintaining a correspondence between an array
33
+ of column headers on the one hand, and an array of rows of cell values on the other
30
34
  * Set [fixed column widths](#fixed-column-widths), then either [wrap](#overflow-handling) or
31
35
  [truncate](#overflow-handling) the overflow.
32
36
  * Alternatively, [shrinkwrap](#shrinkwrap) the table so that each column is just wide enough for its contents.
@@ -38,7 +42,33 @@ end
38
42
  * Newlines within cell content are correctly handled.
39
43
  * A `Tabulo::Table` is an `Enumerable`, so you can [step through it](#enumerator) a row at a time,
40
44
  printing as you go, without waiting for the entire underlying collection to load.
41
- * Each `Tabulo::Row` is also an `Enumerable`, providing access to the underlying cell values.
45
+ * Each `Tabulo::Row` is also an `Enumerable`, [providing access](#accessing-cell-values) to the underlying cell values.
46
+ * Tabulate any `Enumerable`: the underlying collection need not be an array.
47
+
48
+ Tabulo has also been ported to Crystal (with some modifications): see [Tablo](https://github.com/hutou/tablo).
49
+
50
+ ## Table of Contents
51
+
52
+ * [Overview](#overview)
53
+ * [Features](#features)
54
+ * [Table of Contents](#table-of-contents)
55
+ * [Installation](#installation)
56
+ * [Detailed usage](#detailed-usage)
57
+ * [Requiring the gem](#requiring-the-gem)
58
+ * [Configuring columns](#configuring-columns)
59
+ * [Cell alignment](#cell-alignment)
60
+ * [Column width, wrapping and truncation](#column-width-wrapping-and-truncation)
61
+ * [Configuring fixed widths](#configuring-fixed-widths)
62
+ * [Automating column widths](#automating-column-widths)
63
+ * [Overflow handling](#overflow-handling)
64
+ * [Formatting cell values](#formatting-cell-values)
65
+ * [Repeating headers](#repeating-headers)
66
+ * [Using a Table Enumerator](#using-a-table-enumerator)
67
+ * [Accessing cell values)(#accessing-cell-values)
68
+ * [Additional configuration options](#additional-configuration-options)
69
+ * [Development](#development)
70
+ * [Contributing](#contributing)
71
+ * [License](#license)
42
72
 
43
73
  ## Installation
44
74
 
@@ -378,6 +408,21 @@ underlying collection. (This is negated if we [shrinkwrap](#shrinkwrap) the tabl
378
408
  in that case the entire collection must be traversed up front in order for column widths to be
379
409
  calculated.)
380
410
 
411
+ <a name="accessing-cell-values"></a>
412
+ ### Accessing cell values
413
+ Each `Tabulo::Table` is an `Enumerable` of which each element is a `Tabulo::Row`. Each `Tabulo::Row`
414
+ is itself an `Enumerable` comprising the underlying the values of each cell. A `Tabulo::Row` can
415
+ also be converted to a `Hash` for keyed access. For example:
416
+
417
+ ```ruby
418
+ table = Tabulo::Table.new(1..5, columns: %i[itself even? odd?])
419
+
420
+ table.each do |row|
421
+ row.each { |cell| puts cell } # 1...2...3...4...5
422
+ puts row.to_h[:even?] # false...true...false...true...false
423
+ end
424
+ ```
425
+
381
426
  ### Additional configuration options
382
427
 
383
428
  The characters used for horizontal dividers, vertical dividers and corners, which default to `-`,
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
- require 'rake-version'
3
+ require "rake-version"
4
4
 
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.2.1
@@ -1,3 +1,3 @@
1
1
  module Tabulo
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = "Enumerable ASCII table"
13
13
  spec.description = "Enumerable ASCII table"
14
- spec.homepage = "https://matt-harvey.github.io/tabulo"
14
+ spec.homepage = "https://github.com/matt-harvey/tabulo"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  "changelog_uri" => "https://raw.githubusercontent.com/matt-harvey/tabulo/master/CHANGELOG.md"
29
29
  }
30
30
 
31
- spec.add_development_dependency "bundler", "~> 1.16.0"
31
+ spec.add_development_dependency "bundler"
32
32
  spec.add_development_dependency "rake", "~> 11.0"
33
33
  spec.add_development_dependency "rspec", "~> 3.0"
34
34
  spec.add_development_dependency "simplecov"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tabulo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Harvey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-16 00:00:00.000000000 Z
11
+ date: 2019-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.16.0
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.16.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -165,7 +165,7 @@ files:
165
165
  - lib/tabulo/table.rb
166
166
  - lib/tabulo/version.rb
167
167
  - tabulo.gemspec
168
- homepage: https://matt-harvey.github.io/tabulo
168
+ homepage: https://github.com/matt-harvey/tabulo
169
169
  licenses:
170
170
  - MIT
171
171
  metadata:
@@ -187,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  version: '0'
188
188
  requirements: []
189
189
  rubyforge_project:
190
- rubygems_version: 2.4.5.1
190
+ rubygems_version: 2.7.6
191
191
  signing_key:
192
192
  specification_version: 4
193
193
  summary: Enumerable ASCII table