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 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