tabulo 0.3.1 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 693e05e168841c6a0e0b615025c6afce4e6a2c78
4
- data.tar.gz: 51cf627f60299c912a5cb94f6bf29c2ae69435b1
3
+ metadata.gz: 6ee932d2d03998f4b0e537e8d5302887660326e4
4
+ data.tar.gz: 3884ac4f5a066f67819423fd7ca0c86437b7e690
5
5
  SHA512:
6
- metadata.gz: 9dadb888b2dad1bc4e64729fd2caad40bc83787411ce80b305d1d5743b15b5c59ac3e0fe531a297d1789dc4801d06664bbbedaad7f1cfbea5095a41ec7db86c5
7
- data.tar.gz: 51a5a75a4efd0f6fb487784a97682793ac43d29d986496d14ebb63cadf8662077cbed3b1ca3a2523ca49ca461ac5549855b2f71faa303f40e9db5c8b627f5459
6
+ metadata.gz: 23ea187faca64ed1343c42d82db8858bdda1ee219a53e93f6a1d2cb1dc14805d729cc5503e989df30f637ecb10807c59f051d7b48e8bc85527b9035b4b75beba
7
+ data.tar.gz: 5170b8b8761296d4cb05d620bf98d9871a94ea32938b32945b98dc72b8f64f3d4fe9bed6df7444727364d0658816abf94e3b21e92065d9a140e9cbbca60e8774
data/.ackrc ADDED
@@ -0,0 +1,10 @@
1
+ # Additional options for `ack` search utility
2
+
3
+ ## Directories to ignore ##
4
+
5
+ # Documentation generator output
6
+ --ignore-directory=is:.yardoc
7
+ --ignore-directory=is:doc
8
+
9
+ # Generated coverage reports
10
+ --ignore-directory=is:coverage
data/.rdoc_options CHANGED
@@ -3,7 +3,6 @@ encoding: UTF-8
3
3
  static_path: []
4
4
  rdoc_include:
5
5
  - "."
6
- - "/Users/matthew/Workbench/versioned/linode/tabulo"
7
6
  charset: UTF-8
8
7
  exclude:
9
8
  hyperlink_all: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.4.0
4
+
5
+ * Increase default column width from 8 to 12
6
+ * Allow default column width to be configured when initializing a Table
7
+ * Minor code tidy-ups, including removal of undocumented ability for
8
+ Table#add_column to accept a Column instance directly.
9
+
3
10
  ## v0.3.1
4
11
 
5
12
  * Fix width and other options ignored by Table#add_column.
data/README.md CHANGED
@@ -137,13 +137,22 @@ the `align_header` or `align_body` options of `add_column`, e.g.:
137
137
 
138
138
  ### Column width, wrapping and truncation
139
139
 
140
- By default, column width is fixed at 8 characters, plus 1 character of padding on either side.
140
+ By default, column width is fixed at 12 characters, plus 1 character of padding on either side.
141
141
  This can be customized using the `width` option of `add_column`:
142
142
 
143
143
  ```ruby
144
144
  table.add_column(:even?, width: 5)
145
145
  ```
146
146
 
147
+ If you want to set the default column width for all columns of the table to something other
148
+ than 12, use the `column_width` option when initializing the table:
149
+
150
+ ```ruby
151
+ Tabulo::Table.new([1, 2], columns: %i(itself even?), column_width: 6)
152
+ ```
153
+
154
+ The widths set for individual columns will override the default column width for the table.
155
+
147
156
  ### Overflow handling
148
157
 
149
158
  By default, if cell contents exceed their column width, they are wrapped for as many rows as
data/TODO.md CHANGED
@@ -4,7 +4,6 @@
4
4
  * Raise an ArgumentError for disallowed arguments and options (this is
5
5
  a library!)
6
6
  * Document :formatter option in README.
7
- * Allow default column width to be configured at level of Table.
8
7
  * Column#initialize should have the same signature as Table#add_column.
9
8
  * Handle multiline cell content (i.e. when the calculated cell value
10
9
  itself contains a newline).
data/lib/tabulo/column.rb CHANGED
@@ -12,7 +12,7 @@ module Tabulo
12
12
  @align_body = options[:align_body] || nil
13
13
  @extractor = options[:extractor] || @label.to_proc
14
14
  @formatter = options[:formatter] || :to_s.to_proc
15
- @width = options[:width] || Table::DEFAULT_COLUMN_WIDTH
15
+ @width = options[:width]
16
16
  end
17
17
 
18
18
  # @!visibility private
data/lib/tabulo/table.rb CHANGED
@@ -6,7 +6,7 @@ module Tabulo
6
6
  class Table
7
7
  include Enumerable
8
8
 
9
- DEFAULT_COLUMN_WIDTH = 8
9
+ DEFAULT_COLUMN_WIDTH = 12
10
10
 
11
11
  HORIZONTAL_RULE_CHARACTER = "-"
12
12
  CORNER_CHARACTER = "+"
@@ -20,6 +20,8 @@ module Tabulo
20
20
  # Each element of the Array will be used to create a column whose content is
21
21
  # created by calling the corresponding method on each element of sources. Note
22
22
  # the {#add_column} method is a much more flexible way to set up columns on the table.
23
+ # @option options [Fixnum, nil] :column_width (nil) The default column width for columns in this
24
+ # table, not excluding padding. If nil, then DEFAULT_COLUMN_WIDTH will be used.
23
25
  # @option options [:start, nil, Fixnum] :header_frequency (:start) Controls the display of column headers.
24
26
  # If passed <tt>:start</tt>, headers will be shown at the top of the table only. If passed <tt>nil</tt>,
25
27
  # headers will not be shown. If passed a Fixnum N (> 0), headers will be shown at the top of the table,
@@ -37,6 +39,7 @@ module Tabulo
37
39
  def initialize(sources, options = { })
38
40
  opts = {
39
41
  columns: [],
42
+ column_width: DEFAULT_COLUMN_WIDTH,
40
43
  header_frequency: :start,
41
44
 
42
45
  # nil to wrap to no max, 1 to wrap to 1 row then truncate, etc..
@@ -52,7 +55,7 @@ module Tabulo
52
55
  @joiner = "|"
53
56
  @truncation_indicator = "~"
54
57
  @padding_character = " "
55
- @default_column_width = DEFAULT_COLUMN_WIDTH
58
+ @default_column_width = opts[:column_width] || DEFAULT_COLUMN_WIDTH
56
59
  @columns = opts[:columns].map { |item| make_column(item) }
57
60
  yield self if block_given?
58
61
  end
@@ -75,8 +78,9 @@ module Tabulo
75
78
  # by the type of the cell value, with numbers aligned right, booleans center-aligned, and
76
79
  # other values left-aligned. Note header text alignment is configured separately using the
77
80
  # :align_header option.
78
- # @option options [Fixnum] :width (8) Specifies the width of the
79
- # column, excluding padding.
81
+ # @option options [Fixnum] :width (nil) Specifies the width of the column, excluding padding. If
82
+ # nil, then the column will take the width provided by the `column_width` option
83
+ # with which the Table was initialized.
80
84
  # @option options [#to_proc] :formatter (:to_s.to_proc) A lambda or other callable object that
81
85
  # will be passed the calculated value of each cell to determine how it should be displayed. This
82
86
  # is distinct from the extractor (see below). For example, if the extractor for this column
@@ -195,19 +199,14 @@ module Tabulo
195
199
 
196
200
  # @!visibility private
197
201
  def make_column(item, options = { })
198
- case item
199
- when Column
200
- item
201
- else
202
- Column.new({
203
- label: item.to_sym,
204
- header: item.to_s,
205
- align_header: :center,
206
- width: @default_column_width,
207
- formatter: :to_s.to_proc
208
-
209
- }.merge(options))
210
- end
202
+ Column.new({
203
+ label: item.to_sym,
204
+ header: item.to_s,
205
+ align_header: :center,
206
+ width: @default_column_width,
207
+ formatter: :to_s.to_proc
208
+
209
+ }.merge(options))
211
210
  end
212
211
  end
213
212
  end
@@ -1,3 +1,3 @@
1
1
  module Tabulo
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tabulo
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
  - Matthew Harvey
@@ -115,6 +115,7 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
+ - ".ackrc"
118
119
  - ".gitignore"
119
120
  - ".rdoc_options"
120
121
  - ".rspec"