data_collector 0.22.0 → 0.23.0
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/data_collector/input/dir.rb +12 -3
- data/lib/data_collector/input/generic.rb +1 -1
- data/lib/data_collector/input.rb +11 -4
- data/lib/data_collector/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a6db4367b12a41101620cc818a1995868aab20b65157de8c19ea60c68aa90a0
|
4
|
+
data.tar.gz: 39a2cbcd665f85d71bda741a131c54d4f2871ae83ae63b86c9eed9f0d84e405a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d7e6e243f9693603c4502b2f1bbe2fb64b8cf95718be257066940d6fafed24a8352ded805f285b617e25f5fbd703bf6e812dbd9f2b85d5c22cc143e7cdfdc1e
|
7
|
+
data.tar.gz: 73b0c03ef6ccb7855cfc1b6f424c543cc00fc79e182ccc2525c068f3b8d97535e4eaaaa66b0fd59225049d6a0dfb3dc55861319638dfb4c6df489ede6c1f9077
|
@@ -9,8 +9,14 @@ module DataCollector
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def run(should_block = false, &block)
|
12
|
-
@listener.start
|
13
|
-
|
12
|
+
@listener.start unless running?
|
13
|
+
if block_given?
|
14
|
+
while should_block && !paused?
|
15
|
+
yield
|
16
|
+
end
|
17
|
+
else
|
18
|
+
sleep if should_block && running? && !paused?
|
19
|
+
end
|
14
20
|
end
|
15
21
|
|
16
22
|
def running?
|
@@ -20,7 +26,10 @@ module DataCollector
|
|
20
26
|
private
|
21
27
|
|
22
28
|
def create_listener
|
23
|
-
|
29
|
+
absolute_path = File.absolute_path("#{URI.decode_uri_component(@uri.to_s)}")
|
30
|
+
raise DataCollector::Error, "#{@uri.to_s} not found" unless File.exist?(absolute_path)
|
31
|
+
|
32
|
+
@listener ||= Listen.to(absolute_path, @options) do |modified, added, _|
|
24
33
|
files = added | modified
|
25
34
|
files.each do |filename|
|
26
35
|
handle_on_message(@input, @output, filename)
|
data/lib/data_collector/input.rb
CHANGED
@@ -28,6 +28,10 @@ module DataCollector
|
|
28
28
|
def from_uri(source, options = {})
|
29
29
|
source = CGI.unescapeHTML(source)
|
30
30
|
@logger.info("Reading #{source}")
|
31
|
+
raise DataCollector::Error 'from_uri expects a scheme like file:// of https://' unless source =~ /:\/\//
|
32
|
+
|
33
|
+
scheme, path = source.split('://')
|
34
|
+
source="#{scheme}://#{URI.encode_uri_component(path)}"
|
31
35
|
uri = URI(source)
|
32
36
|
begin
|
33
37
|
data = nil
|
@@ -37,11 +41,12 @@ module DataCollector
|
|
37
41
|
when 'https'
|
38
42
|
data = from_https(uri, options)
|
39
43
|
when 'file'
|
40
|
-
|
41
|
-
|
44
|
+
absolute_path = File.absolute_path("#{URI.decode_uri_component("#{uri.host}#{uri.path}")}")
|
45
|
+
if File.directory?(absolute_path)
|
46
|
+
#raise DataCollector::Error, "#{uri.host}/#{uri.path} not found" unless File.exist?("#{uri.host}/#{uri.path}")
|
42
47
|
return from_dir(uri, options)
|
43
48
|
else
|
44
|
-
raise DataCollector::Error, "#{uri.host}/#{uri.path} not found" unless File.exist?("#{uri.host}/#{uri.path}")
|
49
|
+
# raise DataCollector::Error, "#{uri.host}/#{uri.path} not found" unless File.exist?("#{uri.host}/#{uri.path}")
|
45
50
|
data = from_file(uri, options)
|
46
51
|
end
|
47
52
|
when /amqp/
|
@@ -75,6 +80,7 @@ module DataCollector
|
|
75
80
|
end
|
76
81
|
|
77
82
|
def from_https(uri, options = {})
|
83
|
+
uri = URI.decode_uri_component("#{uri.to_s}")
|
78
84
|
data = nil
|
79
85
|
if options.with_indifferent_access.include?(:logging) && options.with_indifferent_access[:logging]
|
80
86
|
HTTP.default_options = HTTP::Options.new(features: { logging: { logger: @logger } })
|
@@ -154,7 +160,8 @@ module DataCollector
|
|
154
160
|
|
155
161
|
def from_file(uri, options = {})
|
156
162
|
data = nil
|
157
|
-
absolute_path = File.absolute_path("#{
|
163
|
+
absolute_path = File.absolute_path("#{URI.decode_uri_component(uri.to_s)}")
|
164
|
+
raise DataCollector::Error, "#{uri.to_s} not found" unless File.exist?("#{absolute_path}")
|
158
165
|
unless options.has_key?('raw') && options['raw'] == true
|
159
166
|
@raw = data = File.read("#{absolute_path}")
|
160
167
|
case File.extname(absolute_path)
|