data_list_converter 0.4.2 → 0.4.3

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
  SHA256:
3
- metadata.gz: ae357714514bf8851c5d2a0976364842a2a63ef3aa1a0b42a0b0a46d5072aab5
4
- data.tar.gz: 016ef3170b9b6919e6d8dbc6a1584157b95d130c4278265dcc5d337bddf3ed65
3
+ metadata.gz: ed694a5c72e52682133a22004d381f3968c3d28db54cbeba194eda7c793e70a9
4
+ data.tar.gz: 656daa9eb323ffa7b7bddb8e40df86606889f091f56c47069f39e37c9f434741
5
5
  SHA512:
6
- metadata.gz: a0f2ef770d00647dfd43595b814eecf5026c2f7d33a1ac3784bbfe14419e233e1e4d866b59c44228a5c60e2e452de5e1aced21993fd207ad23ed2a3807bdfd5c
7
- data.tar.gz: 60e7578914900c8f2fda9eccee66293b4087d83db181231bc51381d478a2bf6951c88ce5dba8d5dd3fac456768416122366a9ad26220ad77805adf2cb992362e
6
+ metadata.gz: ad413ccb9e7f0552a39965c69f7924df825eda9933d9acfb83e20455ea03cdd25f34dd8275187190ca868b34fa490c4025c1024820ebf8627345b7e1d6a8d969
7
+ data.tar.gz: be36997b5d5b37af61e8c5281038ecb8187650ee3d8c506ea852fec5bba8c324a8434e53fe2e2ba729a86deb667376d331aed6194c9cd05286fd636cdbc48219
@@ -45,7 +45,7 @@ class DataListConverter
45
45
  def convert(from_type, to_type, from_value, options={})
46
46
  methods = []
47
47
  add_filter = lambda { |type|
48
- filters = (options[type] || {}).delete(:filter)
48
+ filters = (options[type] || {})[:filter]
49
49
  return unless filters
50
50
  methods += normalize_filters(type, filters)
51
51
  }
@@ -58,6 +58,7 @@ class DataListConverter
58
58
  from_type, to_type = route[i], route[i+1]
59
59
  method = CONVERTERS[[from_type, to_type]]
60
60
  raise "cannot find converter #{from_type} -> #{to_type}" unless method
61
+ self.log "#{from_type} -> #{to_type} options: #{options[to_type]}"
61
62
  methods.push([method, options[to_type] || {}])
62
63
  add_filter.call(to_type)
63
64
  end
@@ -1,14 +1,14 @@
1
1
  class DataListConverter
2
- def self.save_to_file(filename, data, data_format=:item_data)
2
+ def self.save_to_file(filename, data, data_format=:item_data, options={})
3
3
  file_format = self.get_file_format(filename)
4
- DataListConverter.convert(data_format, file_format, data,
5
- file_format => {filename: filename})
4
+ options[file_format] = {filename: filename}
5
+ DataListConverter.convert(data_format, file_format, data, options)
6
6
  end
7
7
 
8
- def self.load_from_file(filename, data_format=:item_data)
8
+ def self.load_from_file(filename, data_format=:item_data, options={})
9
9
  file_format = self.get_file_format(filename)
10
- DataListConverter.convert(file_format, data_format,
11
- {filename: filename})
10
+ options[:filename] = filename
11
+ DataListConverter.convert(file_format, data_format, options)
12
12
  end
13
13
 
14
14
  def self.get_file_format(filename)
@@ -19,8 +19,9 @@ class DataListConverter
19
19
  :"multi_sheet_#{from_type}",
20
20
  :"multi_sheet_#{to_type}",
21
21
  ) do |data, options|
22
+ self.log("multi_sheet #{from_type} -> #{to_type} with options: #{options}")
22
23
  data.map do |sheet, from_data|
23
- to_data = self.convert(from_type, to_type, from_data)
24
+ to_data = self.convert(from_type, to_type, from_data, options)
24
25
  [sheet, to_data]
25
26
  end.to_h
26
27
  end
@@ -1,3 +1,3 @@
1
1
  class DataListConverter
2
- VERSION = "0.4.2".freeze
2
+ VERSION = "0.4.3".freeze
3
3
  end
@@ -26,12 +26,30 @@ describe DataListConverter do
26
26
  string = StringIO.new
27
27
  filter = {count: {size: 4000,
28
28
  out: string,
29
- msg: "%{percent}%"}}
29
+ msg: "%{percent}%%"}}
30
30
  result = DataListConverter.convert(
31
31
  :item_iterator, :table_data, iter,
32
32
  item_iterator: {filter: filter})
33
33
  string.string.split("\n").must_equal ['total: 10000', '40.0%', '80.0%']
34
34
  end
35
35
  end
36
+
37
+ describe :remove_debug do
38
+ specify do
39
+ filter = {remove_debug: true}
40
+ item_data = [{name: "james", debug: "", a: 12}] * 2
41
+ result = DataListConverter.convert(
42
+ :item_data, :table_data, item_data,
43
+ table_iterator: {filter: filter})
44
+ result.must_equal [["name"], ["james"], ["james"]]
45
+
46
+ # check on multi_sheet
47
+ item_data = {a: [{name: "james", debug: "", a: 12}] * 2, b: [{name: 'cc', debug: "", b: 3}]*3}
48
+ result = DataListConverter.convert(
49
+ :multi_sheet_item_data, :multi_sheet_table_data, item_data,
50
+ multi_sheet_table_iterator: {table_iterator: {filter: {remove_debug: true}}})
51
+ result.must_equal(a: [["name"], ["james"], ["james"]], b: [["name"], ["cc"], ["cc"], ["cc"]])
52
+ end
53
+ end
36
54
 
37
55
  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.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - linjunhalida
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-11 00:00:00.000000000 Z
11
+ date: 2020-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -160,8 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  - !ruby/object:Gem::Version
161
161
  version: '0'
162
162
  requirements: []
163
- rubyforge_project:
164
- rubygems_version: 2.7.3
163
+ rubygems_version: 3.0.6
165
164
  signing_key:
166
165
  specification_version: 4
167
166
  summary: convert data between different formats