table_print 1.5.5 → 1.5.6

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
2
  SHA1:
3
- metadata.gz: 75f0b161cc29a2e227d625e00c76364946cc5e11
4
- data.tar.gz: 179532ca5df6f983c329cab1f477dc847f35e7ac
3
+ metadata.gz: 2f888ea5f3cd53aae3450eda4e53f9bd649a940a
4
+ data.tar.gz: eaee7c7975d8b875a5a13290a89e1eca4797cbd2
5
5
  SHA512:
6
- metadata.gz: 808d2426a172902d3d9bbf7c9b084107f43607927e6e5f9fcd4bca9303158a0a35c921718c7e536b6bdef4b324c32ee510879b448f86b3efd485ad390709daf6
7
- data.tar.gz: dd0dba14399110e1c2e6f08c5735f812dea8ac22992685dc8ea2e48ee69e0ab98561d32acf5e96efba4a8a56fd30966abc8ff4111e1b52a18463acaf175c3330
6
+ metadata.gz: fcb84a8749506b7a8de69471157e56f0584ce3183c644df5e7c9bcdac6b7b30220b4baf9cf6b1f6f473b75ec924fa982167ce5888ae544927a2d867090613627
7
+ data.tar.gz: 433a4425650c26e68452b63edcc014c8018cf90cdf036972e130720fffa0b9120d8e4fbc83d182a99a191a0f1216d74ef2428adf42c10b72f4ab712a5a6bdc74
@@ -88,6 +88,7 @@ Available column options:
88
88
  * *time_format* - string - passed to strftime[http://www.ruby-doc.org/core-1.9.3/Time.html#method-i-strftime], only affects time columns
89
89
  * *width* - integer - how wide you want your column.
90
90
  * *display_name* - string - useful if you want spaces in your column name
91
+ * *separator* - string - default is vertical bar for console and markdown, change it to a comma for CSV output
91
92
 
92
93
  ==== Display method
93
94
 
@@ -131,6 +132,14 @@ method to send table_print output directly into your <pre> tag:
131
132
  content_tag :pre, TablePrint::Printer.new(data, options).table_print
132
133
  end
133
134
 
135
+ === CSV Output
136
+
137
+ Set the column separator to get an output you can save as a CSV:
138
+
139
+ tp.set :separator, ","
140
+
141
+ Since your CSV viewer probably already handles column widths for you, setting +max_width+ to something very large will help you export your full data set. Otherwise, this CSV output will still be truncated to the default max_width of 30 characters.
142
+
134
143
  === Config
135
144
 
136
145
  Use tp.set and tp.clear to set options on a class-by-class basis.
@@ -99,7 +99,7 @@ Feature: Configuring output
99
99
  Ryan
100
100
  """
101
101
 
102
- Scenario: Setting a lowecase column name
102
+ Scenario: Setting a lowercase column name
103
103
  Given a class named Blog
104
104
 
105
105
  Given Blog has attributes title, author
@@ -113,3 +113,18 @@ Feature: Configuring output
113
113
  -------
114
114
  Ryan
115
115
  """
116
+
117
+ Scenario: Setting the column separator
118
+ Given a class named Blog
119
+
120
+ Given Blog has attributes title, author
121
+
122
+ When I instantiate a Blog with {:title => "post!", :author => 'Ryan'}
123
+ And I configure separator with ','
124
+ And table_print Blog
125
+ Then the output should contain
126
+ """
127
+ TITLE , AUTHOR
128
+ ------,-------
129
+ post! , Ryan
130
+ """
@@ -1,4 +1,5 @@
1
1
  Before do
2
2
  Sandbox.cleanup!
3
3
  TablePrint::Config.clear(:capitalize_headers)
4
+ TablePrint::Config.clear(:separator)
4
5
  end
@@ -66,6 +66,10 @@ When /^I configure capitalize_headers with (.*)$/ do |value|
66
66
  TablePrint::Config.set(:capitalize_headers, [value == "true"])
67
67
  end
68
68
 
69
+ When /^I configure separator with '(.*)'$/ do |value|
70
+ TablePrint::Config.set(:separator, [value])
71
+ end
72
+
69
73
  When /^configure (.*) with (.*)$/ do |klass, config|
70
74
  klass = Sandbox.const_get_from_string(klass)
71
75
  TablePrint::Config.set(klass, eval(config))
@@ -5,12 +5,14 @@ module TablePrint
5
5
  DEFAULT_TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
6
6
  DEFAULT_IO = $stdout
7
7
  DEFAULT_CAPITALIZE_HEADERS = true
8
+ DEFAULT_SEPARATOR = "|"
8
9
 
9
10
  @@max_width = DEFAULT_MAX_WIDTH
10
11
  @@time_format = DEFAULT_TIME_FORMAT
11
12
  @@multibyte = false
12
13
  @@io = DEFAULT_IO
13
14
  @@capitalize_headers = true
15
+ @@separator = DEFAULT_SEPARATOR
14
16
 
15
17
  @@klasses = {}
16
18
 
@@ -67,6 +69,14 @@ module TablePrint
67
69
  @@capitalize_headers = caps
68
70
  end
69
71
 
72
+ def self.separator
73
+ @@separator
74
+ end
75
+
76
+ def self.separator=(separator)
77
+ @@separator = separator
78
+ end
79
+
70
80
  def self.io
71
81
  @@io
72
82
  end
@@ -64,7 +64,7 @@ module TablePrint
64
64
  def horizontal_separator
65
65
  columns.collect do |column|
66
66
  '-' * column.width
67
- end.join('-|-')
67
+ end.join("-#{TablePrint::Config.separator}-")
68
68
  end
69
69
 
70
70
  def header
@@ -73,7 +73,7 @@ module TablePrint
73
73
  f.format(column.name)
74
74
  end
75
75
 
76
- header_string = padded_names.join(" | ")
76
+ header_string = padded_names.join(" #{TablePrint::Config.separator} ")
77
77
  header_string.upcase! if TablePrint::Config.capitalize_headers
78
78
 
79
79
  header_string
@@ -177,7 +177,7 @@ module TablePrint
177
177
  def format
178
178
  column_names = columns.collect(&:name)
179
179
 
180
- output = [column_names.collect { |name| apply_formatters(name, @cells[name]) }.join(" | ")]
180
+ output = [column_names.collect { |name| apply_formatters(name, @cells[name]) }.join(" #{TablePrint::Config.separator} ")]
181
181
  output.concat @children.collect { |g| g.format }
182
182
 
183
183
  output.join("\n")
@@ -1,4 +1,4 @@
1
1
  module TablePrint
2
- VERSION = "1.5.5"
2
+ VERSION = "1.5.6"
3
3
  end
4
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_print
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.5
4
+ version: 1.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Doyle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-16 00:00:00.000000000 Z
11
+ date: 2016-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cat