tabular 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
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