ducksboard_reporter 0.1.6 → 0.1.7

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
  SHA1:
3
- metadata.gz: 11fb63f4af0155d6b61623c2861565e0228c79c5
4
- data.tar.gz: 22661f14ac7e1df6be2acdd1d5720c1d9aead8c6
3
+ metadata.gz: dd4ec0122592e3ac104687e7d5f4db8ba7800d22
4
+ data.tar.gz: 773ad4fa59eda3850ffeea216ca989d08ed969a9
5
5
  SHA512:
6
- metadata.gz: 38334cbbe75836952ccd566d4c9dfbaad21f1c3fb5959d2a721d82be20262208b2396fee9af795c2f10a19b657dfa84daa9054c4a41040bf7a0e0b42fda97336
7
- data.tar.gz: e2264b5862ce9021bc899164445f27abc9619bd17820107e876e77771aaee6dbc1f53fe864b190eb7c7b86ae75d52dc022e9bc313d76a325f681f72f249c79e1
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 Errno::ENOENT if line.nil? && !File.exists?(@path)
21
+ raise FileNotReadyForReadError if line.nil? && !file_ready_for_read?
21
22
  end
22
- rescue Errno::ENOENT
23
- sleep 0.1
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}). Reopening file."))
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
 
@@ -1,3 +1,3 @@
1
1
  module DucksboardReporter
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
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.6
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-07 00:00:00.000000000 Z
11
+ date: 2014-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler