data_collector 0.22.0 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|