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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f10d601ed67075300f3995f95c7a1306f88bc5fd
4
- data.tar.gz: 5f34487c7a30211f6c136a414eb95c7efc117417
3
+ metadata.gz: 689d1d35ab1e6a33a345241e866169c7ddcf40fe
4
+ data.tar.gz: 11b9d772d9ddf5e2f32feb0b7250910f36be3007
5
5
  SHA512:
6
- metadata.gz: ec0065ab83ec9d73a40cfab503b573af4ccee8b39909195a6ead7b769716f1bd7ffbb6aea6b8167aecbcf697a867999c8332762c6dcd201628d99b4e5cd48f03
7
- data.tar.gz: f2d06e95a91c37418b62f96abe5e69d4d5bbadf53ea0a32b7b15d7a243bd620fad6eb23ca1cd129c103613d57cd9fff7b6a284647f1bdc211928d1152452715d
6
+ metadata.gz: f93998847f29f3926d9d956098b3f6b29f6392c14bfa15b1300465d8f9d45cb05876e6a45a9db4e073ef3a10884f3c9c6f00d6365ef3dfff569eea4a13eb41f6
7
+ data.tar.gz: 669f9ed3791dcc71a29480a1be3073d700ae8bcba306fae78e4596da805f7b2c31830e23d43640f1d3b2360379194250a527cb366a6553fcd1253b5a4dd52d26
@@ -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
- keys = groups.keys.transpose.map{|col| col.zip(nrows).flat_map{|key, rows| [key] * rows}}
68
- keys = ObjectTable::BasicGrid[names.zip(keys)]
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))
@@ -1,3 +1,3 @@
1
1
  class ObjectTable
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -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.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-03-26 00:00:00.000000000 Z
11
+ date: 2015-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: narray