object_table 0.3.3 → 0.3.4
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/lib/object_table/grouped.rb +7 -5
- data/lib/object_table/version.rb +1 -1
- data/spec/object_table/grouped_spec.rb +10 -0
- 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: 689d1d35ab1e6a33a345241e866169c7ddcf40fe
|
4
|
+
data.tar.gz: 11b9d772d9ddf5e2f32feb0b7250910f36be3007
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f93998847f29f3926d9d956098b3f6b29f6392c14bfa15b1300465d8f9d45cb05876e6a45a9db4e073ef3a10884f3c9c6f00d6365ef3dfff569eea4a13eb41f6
|
7
|
+
data.tar.gz: 669f9ed3791dcc71a29480a1be3073d700ae8bcba306fae78e4596da805f7b2c31830e23d43640f1d3b2360379194250a527cb366a6553fcd1253b5a4dd52d26
|
data/lib/object_table/grouped.rb
CHANGED
@@ -14,9 +14,6 @@ class ObjectTable::Grouped
|
|
14
14
|
def _groups
|
15
15
|
names, keys = _keys()
|
16
16
|
groups = keys.length.times.group_by{|i| keys[i]}
|
17
|
-
groups.each do |k, v|
|
18
|
-
groups[k] = v
|
19
|
-
end
|
20
17
|
[names, groups]
|
21
18
|
end
|
22
19
|
|
@@ -64,8 +61,13 @@ class ObjectTable::Grouped
|
|
64
61
|
value
|
65
62
|
end
|
66
63
|
|
67
|
-
|
68
|
-
|
64
|
+
if groups.empty?
|
65
|
+
# empty table, so make all keys empty
|
66
|
+
keys = ObjectTable::BasicGrid[names.zip([[]] * names.length)]
|
67
|
+
else
|
68
|
+
keys = groups.keys.transpose.map{|col| col.zip(nrows).flat_map{|key, rows| [key] * rows}}
|
69
|
+
keys = ObjectTable::BasicGrid[names.zip(keys)]
|
70
|
+
end
|
69
71
|
|
70
72
|
result = __table_cls__.stack(*data)
|
71
73
|
__table_cls__.new(keys.merge!(result.columns))
|
data/lib/object_table/version.rb
CHANGED
@@ -336,6 +336,16 @@ describe ObjectTable::Grouped do
|
|
336
336
|
end
|
337
337
|
end
|
338
338
|
|
339
|
+
context 'on an empty table' do
|
340
|
+
let(:table) { ObjectTable.new(col1: [], col2: []) }
|
341
|
+
|
342
|
+
it 'should return a table with no rows and only key columns' do
|
343
|
+
expect(subject.nrows).to eql 0
|
344
|
+
expect(subject.columns.keys).to eql [:parity]
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
339
348
|
end
|
340
349
|
|
350
|
+
|
341
351
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: object_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cheney Lin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: narray
|