texttable 0.6.0 → 0.7.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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/texttable.rb +24 -0
  3. data/texttable.gemspec +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e6d414e056753b18aad741029e85f39f38dba232d97a38e03ba10407a835923b
4
- data.tar.gz: 69c37ea0dc86881c438956035ddad85f5f17dc3f940e7e0e5ba42f072eae6593
3
+ metadata.gz: 05a63a519ac14bb17ae4fc2e01e343842b69964389701fca2dabfa7f6188f862
4
+ data.tar.gz: b0fc4bc9ba189bb8261a8f35dee4cff9bb0433c7b954db3c44a99e32007ad118
5
5
  SHA512:
6
- metadata.gz: d524d290960e9c9e573599249898ce0dfffbcfffa2b30f4cb77fc11d50cf1889a4c061fdb8b957b8144e9f9578857e47e1046b564e5d729c4218b9b8b1f63352
7
- data.tar.gz: c0a06bc70df55c76b11bdb9dde04699cd41b395c7ccae4cf50512d957fa0329517eb49af1486aa43ad93935d25551eb01751220621b57db4309513667052b985
6
+ metadata.gz: '04752868c5a7e74f19355135b8f58ec14e77920e6b466a6e9f5f08d47a70cb9f19531a74b5b0d06fb9321340d865a5ff372960382b2b2dba6d9d753699635248'
7
+ data.tar.gz: d642c5505cd6787b8f86ed51bddb58ff2adafae05ab4e0b094f377ae29fb74148fc8d960313dcefcfef9bbd2ef6eba4e88dd597fd3a0fb1bf2fe4c503c647437
data/lib/texttable.rb CHANGED
@@ -28,4 +28,28 @@ class TextTable
28
28
  puts line, "#{seen} rows displayed", ""
29
29
  self
30
30
  end
31
+
32
+ def csv(sep=',', encoding: nil)
33
+ require 'csv'
34
+ csv = {}
35
+ csv[:encoding] = encoding + ":UTF-8" if encoding
36
+ csv[:col_sep ] = sep
37
+ csv = CSV.new($stdout, csv)
38
+ csv << cols.keys
39
+ rows.each {|vals| csv << vals}
40
+ end
41
+ def tsv; csv("\t"); end
42
+ def psv; csv("|" ); end
43
+
44
+ def sql(table='table', quote: false)
45
+ q = quote ? '`' : ''
46
+ flip = cols.invert
47
+ rows.each do |vals|
48
+ list = vals.each_with_index.inject([]) do |list, (item, i)|
49
+ list << "#{q}#{flip[i]}#{q}='#{item.gsub("'","''")}'" if item =~ /\S/
50
+ list
51
+ end
52
+ puts "insert into #{q}#{table}#{q} set #{list * ', '};" if !list.empty?
53
+ end
54
+ end
31
55
  end
data/texttable.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "texttable"
5
- s.version = "0.6.0"
5
+ s.version = "0.7.0"
6
6
  s.author = "Steve Shreeve"
7
7
  s.email = "steve.shreeve@gmail.com"
8
8
  s.summary = "An easy way to print rows and columns as simple tables"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: texttable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Shreeve
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-21 00:00:00.000000000 Z
11
+ date: 2019-08-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This gem will auto-size based on column widths.
14
14
  email: steve.shreeve@gmail.com