ducksboard_reporter 0.1.6 → 0.1.7
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/ducksboard_reporter/file_tail.rb +9 -4
- data/lib/ducksboard_reporter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd4ec0122592e3ac104687e7d5f4db8ba7800d22
|
4
|
+
data.tar.gz: 773ad4fa59eda3850ffeea216ca989d08ed969a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac2905fb4a3b4f9bef927634fe68d804feec9d3c76cac7ac37a9623b81cce6e04b13b1af974db398055695087a8379125ad44096872f159c5de10ff8791c8499
|
7
|
+
data.tar.gz: 3b3d223d26d3438544c75d817b3f4c59fbf5fcc3bb9457a4278a188ead4fae267a09c16bd4ac4eb0e07832bc14eaef106f96ce7ba68eda798af9f46d6bd3aeb6
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module DucksboardReporter
|
2
2
|
class FileTail
|
3
3
|
include Celluloid::Logger
|
4
|
+
class FileNotReadyForReadError < StandardError; end
|
4
5
|
|
5
6
|
attr_accessor :value, :timestamp, :name, :options
|
6
7
|
|
@@ -17,10 +18,10 @@ module DucksboardReporter
|
|
17
18
|
|
18
19
|
@line_block.call(line)
|
19
20
|
|
20
|
-
raise
|
21
|
+
raise FileNotReadyForReadError if line.nil? && !file_ready_for_read?
|
21
22
|
end
|
22
|
-
rescue Errno::ENOENT
|
23
|
-
sleep 0.
|
23
|
+
rescue Errno::ENOENT, FileNotReadyForReadError
|
24
|
+
sleep 0.5
|
24
25
|
retry
|
25
26
|
end
|
26
27
|
|
@@ -35,7 +36,7 @@ module DucksboardReporter
|
|
35
36
|
if (new_inode = File.stat(@path).ino) == @file.stat.ino
|
36
37
|
return
|
37
38
|
else
|
38
|
-
debug(log_format("Inode changed (#{@file.stat.ino} => #{new_inode}).
|
39
|
+
debug(log_format("Inode changed (#{@file.stat.ino} => #{new_inode}). Closing file."))
|
39
40
|
@file.close
|
40
41
|
end
|
41
42
|
end
|
@@ -49,6 +50,10 @@ module DucksboardReporter
|
|
49
50
|
@log_prefix ||= "FileTail (#{@path}): "
|
50
51
|
@log_prefix + msg
|
51
52
|
end
|
53
|
+
|
54
|
+
def file_ready_for_read?
|
55
|
+
@file && !@file.closed? && File.stat(@path).ino == @file.stat.ino
|
56
|
+
end
|
52
57
|
end
|
53
58
|
end
|
54
59
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ducksboard_reporter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- unnu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|