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 +4 -4
- data/README +2 -0
- data/lib/tabular/column.rb +11 -2
- data/lib/tabular/columns.rb +3 -0
- data/lib/tabular/row.rb +13 -3
- data/lib/tabular/table.rb +4 -0
- data/lib/tabular/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dff94cc74c5cfbb23e9dfb56d2c4fb7091bab946
|
4
|
+
data.tar.gz: 9e0c5f281e4d5d967881692d06fac660d6b3ba00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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!
|
data/lib/tabular/column.rb
CHANGED
@@ -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
|
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)
|
data/lib/tabular/columns.rb
CHANGED
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
|
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
data/lib/tabular/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2014-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-ole
|