data_list_converter 0.3.8 → 0.3.9

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: f357db4b2525dead9375cca320a5830b7fcc73ea
4
- data.tar.gz: ee1043d9b2f41d5ad41c871e31a3658b2f6ad348
3
+ metadata.gz: 2ecbbb8c5d6e3ad1e2de6f3b4a8fc5033cdc83ff
4
+ data.tar.gz: f4b8eb65bf43e3f28ed3607b06f5643eb278b4a4
5
5
  SHA512:
6
- metadata.gz: 06d419b8f559f1706a258f0f9c57e9062b8c677f4a08e7009a6a6fc24e22ccca21aba5f586c35a7914178fbbabee455e9d98996e7788919776b9dbca01335c48
7
- data.tar.gz: 42448560dab15937d25c9dfbcedabe3c657030648d454965c7e833c426a7413812a43acb29c82061b67570f7abe8eeceac06117fc75b81039d4c7e787438639b
6
+ metadata.gz: ea3669bc7a3bb7e381387538433bad76401ffe288d3dd54d2d7181797719951b138db9810fc98ac1460361fa3b25b6924d040c06f3cb19bb54db4bc43545b718
7
+ data.tar.gz: 159e246ba2bc8e83b0b699d4a503328bd2ddd2d5792cabaea6c541388f705d0d41a62b3c06fd09a1e6aceac3d1d7fb4632798a847d273fc2ab9c963524d44601
data/README.md CHANGED
@@ -98,7 +98,9 @@ end
98
98
 
99
99
  ## Todo
100
100
 
101
+ - check type exists
101
102
  - register can bind method again
102
103
  - better API
103
104
  - better error message
104
105
  - load file/save file with auto format by extname
106
+ - report error when cannot find type
data/changelog.md CHANGED
@@ -7,6 +7,7 @@ Refactor.
7
7
  - 0.3.5 add csv_raw type
8
8
  - 0.3.7 add marshal_file type, and load_from_file, save_to_file helper
9
9
  - 0.3.8 add raw type
10
+ - 0.3.9 add unify_item_data_keys helper
10
11
 
11
12
  ## 0.2
12
13
 
@@ -29,4 +29,21 @@ class DataListConverter
29
29
  matcher.match(type)
30
30
  end
31
31
  end
32
+
33
+ # sometimes item data keys don't exactly same, like:
34
+ # [{a: 12}, {b: 11}]
35
+ # should update to:
36
+ # [{a: 12, b: nil}, {a: nil, b: 11}]
37
+ # so it can be convent to table data
38
+ def self.unify_item_data_keys(list)
39
+ keys = Set.new
40
+ list.each do |item|
41
+ keys += item.keys
42
+ end
43
+ list.each do |item|
44
+ keys.each do |key|
45
+ item[key] ||= nil
46
+ end
47
+ end
48
+ end
32
49
  end
@@ -6,7 +6,7 @@ class DataListConverter
6
6
  lambda { |&block|
7
7
  records.find_each do |record|
8
8
  item = columns.map do |column|
9
- [column.first.to_sym, record.send(column[1])]
9
+ [column[0].to_sym, record.send(column[1])]
10
10
  end.to_h
11
11
  block.call(item)
12
12
  end
@@ -9,7 +9,7 @@ class DataListConverter
9
9
  sheet = book.worksheets[input[:sheet] || 0]
10
10
  sheet.each do |row|
11
11
  next unless row
12
- row_data = row.cells.map{|i| i.try(:value)}
12
+ row_data = row.cells.map{|i| i ? i.value : nil} # i maybe nil
13
13
  block.call(row_data)
14
14
  end
15
15
  }
@@ -66,7 +66,7 @@ class DataListConverter
66
66
  iterator = lambda { |&block|
67
67
  sheet.each do |row|
68
68
  next unless row
69
- row_data = row.cells.map{|i| i.try(:value)}
69
+ row_data = row.cells.map{|i| i ? i.value : nil} # i maybe nil
70
70
  block.call(row_data)
71
71
  end
72
72
  }
@@ -1,3 +1,3 @@
1
1
  class DataListConverter
2
- VERSION = "0.3.8".freeze
2
+ VERSION = "0.3.9".freeze
3
3
  end
data/test/helper_test.rb CHANGED
@@ -62,4 +62,12 @@ describe DataListConverter do
62
62
  end
63
63
  end
64
64
 
65
+ describe :unify_item_data_keys do
66
+ specify do
67
+ list = [{a: 12}, {b: 11}]
68
+ @c.unify_item_data_keys(list)
69
+ list.must_equal([{a: 12, b: nil}, {a: nil, b: 11}])
70
+ end
71
+ end
72
+
65
73
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_list_converter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - linjunhalida
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-13 00:00:00.000000000 Z
11
+ date: 2016-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake