tabular 0.2.6 → 0.2.7

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: decef6ce8a30ee4c9008445e52db1d8c6c7634da
4
- data.tar.gz: 51165df09dc13e1c8f18c46eb2027f5755276490
3
+ metadata.gz: dff94cc74c5cfbb23e9dfb56d2c4fb7091bab946
4
+ data.tar.gz: 9e0c5f281e4d5d967881692d06fac660d6b3ba00
5
5
  SHA512:
6
- metadata.gz: faecd2bb8ddaee2e4f9776645c37407265fdf173484d8435d9796987f0d99c13fcd0ae80aa566320f790c6aea2dd69c20bf142cbb0c767f1db0ae633b34c3524
7
- data.tar.gz: c26ddf3fcd83c9f7fda952d108e2d68547551580ea7ed655d1874a9800da37655c689aeb81d765e90188ab5c4487cedcff82bfbd25ca577dda30528b5210f645
6
+ metadata.gz: 32feb486e35a7be09e36188c8e052f4345bdd00dcbc74e32aca381c4447c5a3f59eba3ca287ff0f81bd3a7e4764b8ea81400039a43a01fbb22ae07ee70e33bc5
7
+ data.tar.gz: a1a5fc2bcc055a00478027c63f35c35498159139b9367591706bcdf319e0d8ad902771eb093df54238c54eaf8fe174946370899474d90db722d5ad8c0b5bdd14
data/README CHANGED
@@ -64,6 +64,8 @@ There's basic test coverage. More comprehensive test coverage needs to be extrac
64
64
 
65
65
  Changes
66
66
  -------
67
+ 0.2.7 Add Table#to_space_delimited for space-padded fixed layout
68
+ 0.2.6 Add :except option for delete_blank_columns!
67
69
  0.2.5 Use modern gemspec with no runtime dependencies. Make spreadsheet gem optional.
68
70
  0.2.3 Add :except option for delete_homogenous_columns!
69
71
  0.2.1 Documentation!
@@ -47,7 +47,12 @@ module Tabular
47
47
 
48
48
  # Number of zeros to the right of the decimal point. Useful for formtting time data.
49
49
  def precision
50
- @precision || cells.map(&:to_f).map {|n| n.round(3) }.map {|n| n.to_s.split(".").last.gsub(/0+$/, "").length }.max
50
+ @precision ||= cells.map(&:to_f).map {|n| n.round(3) }.map {|n| n.to_s.split(".").last.gsub(/0+$/, "").length }.max
51
+ end
52
+
53
+ # Widest string in column
54
+ def width
55
+ @width ||= (cells.map(&:to_s) << to_s).map(&:size).max
51
56
  end
52
57
 
53
58
  # Human-friendly header string. Delegate to +renderer+'s render_header method.
@@ -60,6 +65,10 @@ module Tabular
60
65
  @columns.renderer(key)
61
66
  end
62
67
 
68
+ def to_space_delimited
69
+ to_s.ljust width
70
+ end
71
+
63
72
  def inspect
64
73
  "#<Tabular::Column #{key} #{column_type}>"
65
74
  end
@@ -67,7 +76,7 @@ module Tabular
67
76
  def to_s
68
77
  key.to_s
69
78
  end
70
-
79
+
71
80
  private
72
81
 
73
82
  def symbolize(key)
@@ -86,6 +86,9 @@ module Tabular
86
86
  @renderers ||= {}
87
87
  end
88
88
 
89
+ def to_space_delimited
90
+ map(&:to_space_delimited).join " "
91
+ end
89
92
 
90
93
  private
91
94
 
data/lib/tabular/row.rb CHANGED
@@ -55,7 +55,7 @@ module Tabular
55
55
  def each_with_key(&block)
56
56
  hash.each(&block)
57
57
  end
58
-
58
+
59
59
  # Keys for all columns
60
60
  def keys
61
61
  hash.keys
@@ -88,7 +88,7 @@ module Tabular
88
88
  column = columns[key]
89
89
  column.renderer.render column, self
90
90
  end
91
-
91
+
92
92
  def metadata
93
93
  @table.metadata
94
94
  end
@@ -97,6 +97,16 @@ module Tabular
97
97
  hash.dup
98
98
  end
99
99
 
100
+ def to_space_delimited
101
+ _cells = []
102
+
103
+ hash.each do |key, value|
104
+ _cells << (render(key) || "").ljust(columns[key].width)
105
+ end
106
+
107
+ _cells.join " "
108
+ end
109
+
100
110
  def inspect
101
111
  hash.inspect
102
112
  end
@@ -127,7 +137,7 @@ module Tabular
127
137
  else
128
138
  @hash[column.key] = nil
129
139
  end
130
- rescue ArgumentError => e
140
+ rescue ArgumentError
131
141
  date = parse_invalid_date(@array[index])
132
142
  if date
133
143
  @hash[column.key] = date
data/lib/tabular/table.rb CHANGED
@@ -185,6 +185,10 @@ module Tabular
185
185
  @metadata ||= {}
186
186
  end
187
187
 
188
+ def to_space_delimited
189
+ ([ columns ] + rows).map(&:to_space_delimited).join("\n") << "\n"
190
+ end
191
+
188
192
  def to_s
189
193
  "#<#{self.class} #{rows.size}>"
190
194
  end
@@ -1,3 +1,3 @@
1
1
  module Tabular
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tabular
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Willson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-10 00:00:00.000000000 Z
11
+ date: 2014-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-ole