data_collector 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b38644344f6bcfa74d68a2281b83c803879334fbd0f281fde4de8f92b180c5ec
4
- data.tar.gz: 582650f6f0237f4a45c45ab137b6eac0110117b77a7b917eae448d17285ae999
3
+ metadata.gz: 67dc86adcebab3a6deba3ca2adf6c41c5925c03fc0dca627b030a39ff889d796
4
+ data.tar.gz: a4283972b9035c9e48370bcd07f3a375fb5312de584ed757f3572cc4c0b47164
5
5
  SHA512:
6
- metadata.gz: 550f42750545164f6e7f47347144023be9c1bb58ff661886e1a5ef51c2804fcea8d75b87c65ce29b6a288a3e24bcbfce26f5987c17424cdb1023fda510675b49
7
- data.tar.gz: ee0d60db7824fda4688c0c41aed8f8e2884aeb5d9e0b4178c53685a4fcc44e3ef93f848f3b597d6c7b8fdb85a64ffe155f03e9e6bc59fcf54fc109b662a5d892
6
+ metadata.gz: 65fee9ff5f15c521afc0f8181a67cebe5d7d3668a72e5cf792572745b9f7279565972cfea1568fed08d1173b33686c7fd9038c244afbc37891d25a25b6d3962d
7
+ data.tar.gz: 5cb4b0144a4993a00af0fc9d9637f9bc1c1fb0b72fd082e30c9f7ffbd319fbd2ad28ce95ae9b0fe54020bcb0e3ec0251380830ff4525d7a80c33966355a1ac0a
data/README.md CHANGED
@@ -9,7 +9,7 @@ example:
9
9
  input.from_uri("file://hello.txt")
10
10
  ```
11
11
 
12
- Inputs can be JSON, XML or CSV
12
+ Inputs can be JSON, XML or CSV or XML in a TAR.GZ file
13
13
 
14
14
  ### output
15
15
  Output is an object you can store data that needs to be written to an output stream.
@@ -42,9 +42,8 @@ Gem::Specification.new do |spec|
42
42
  spec.add_runtime_dependency "nori", "~> 2.6"
43
43
  spec.add_runtime_dependency "http", "~> 4.1"
44
44
  spec.add_runtime_dependency "mime-types", "~> 3.2"
45
- spec.add_runtime_dependency "minitar", "= 0.8"
45
+ spec.add_runtime_dependency "minitar", "= 0.9"
46
46
  spec.add_runtime_dependency "activesupport", "~> 5.2"
47
- spec.add_runtime_dependency "redis", "~> 4.1"
48
47
 
49
48
  spec.add_development_dependency "bundler", "~> 2.0"
50
49
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'jsonpath'
3
+ require 'logger'
3
4
 
4
5
  require_relative 'input'
5
6
  require_relative 'output'
@@ -93,6 +94,7 @@ module DataCollector
93
94
 
94
95
  filtered
95
96
  rescue StandardError => e
97
+ @logger ||= Logger.new(STDOUT)
96
98
  @logger.error("#{filter_path} failed: #{e.message}")
97
99
  []
98
100
  end
@@ -102,6 +104,7 @@ module DataCollector
102
104
  end
103
105
 
104
106
  def log(message)
107
+ @logger ||= Logger.new(STDOUT)
105
108
  @logger.info(message)
106
109
  end
107
110
 
@@ -64,13 +64,16 @@ module DataCollector
64
64
 
65
65
  def clear
66
66
  @data = {}
67
- GC.start(full_mark: true, immediate_sweep: true)
67
+ #GC.start(full_mark: true, immediate_sweep: true)
68
+ GC.start
68
69
  end
69
70
 
70
71
 
71
- def to_s(erb_file)
72
+ def to_s(erb_file = nil)
72
73
  data = @data
73
74
 
75
+ return data.to_s if erb_file.nil?
76
+
74
77
  def print(data, symbol, to_symbol = nil)
75
78
  tag = to_symbol ? to_symbol.to_s : symbol.to_s
76
79
 
@@ -1,5 +1,4 @@
1
1
  require 'logger'
2
- #require_relative 'core'
3
2
 
4
3
  module DataCollector
5
4
  class Rules
@@ -19,7 +18,9 @@ module DataCollector
19
18
  end
20
19
 
21
20
  to_record.each do |element|
22
- element = element.delete_if{||}
21
+ element = element.delete_if do |k, v|
22
+ v != false && (v.nil? || v.empty?)
23
+ end
23
24
  end
24
25
  end
25
26
 
@@ -38,13 +39,19 @@ module DataCollector
38
39
  to_record << {map_to_key.to_sym => result}
39
40
  end
40
41
  else
41
- to_record << {map_to_key.to_sym => get_value_for(map_to_key, rule['filter'], from_record, rule['options'])}
42
+ result = get_value_for(map_to_key, rule['filter'], from_record, rule['options'])
43
+ return if result && result.empty?
44
+ to_record << {map_to_key.to_sym => result}
42
45
  end
43
46
  end
44
47
 
45
48
  def get_value_for(tag_key, filter_path, record, options = {})
46
49
  data = nil
47
50
  if record
51
+ if filter_path.is_a?(Array) && !record.is_a?(Array)
52
+ record = [record]
53
+ end
54
+
48
55
  data = Core::filter(record, filter_path)
49
56
 
50
57
  if data && options
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module DataCollector
3
- VERSION = "0.2.1"
3
+ VERSION = "0.2.2"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_collector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mehmet Celik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-28 00:00:00.000000000 Z
11
+ date: 2019-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: '0.8'
103
+ version: '0.9'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: '0.8'
110
+ version: '0.9'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: activesupport
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -122,20 +122,6 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '5.2'
125
- - !ruby/object:Gem::Dependency
126
- name: redis
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '4.1'
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '4.1'
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: bundler
141
127
  requirement: !ruby/object:Gem::Requirement