linedump 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/linedump/consumer.rb +13 -7
- data/lib/linedump/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47d99657aaa2bffd05ddf2b3d5c28fd451fecde2
|
4
|
+
data.tar.gz: 1b1521d831fc0b8feccb5576c6dd914c0184e8e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2fe60783ac00dbfb495c180e4030cd4e757461cf99077c5623822d445389630f1110f2fa05a02c17cb51d8e390dd368bca61591e3474989725adfee64389585
|
7
|
+
data.tar.gz: e7224adde07d0d8d130c37de1e9eb32d7048f57f43c27aaf7312d43e6d425ff9b0ef684bacda011bb41033ad84a5cb82fd0a4bb2a101505440c45e8f87f5de0c
|
data/lib/linedump/consumer.rb
CHANGED
@@ -17,7 +17,7 @@ module Linedump
|
|
17
17
|
|
18
18
|
def register_stream(_stream, &_block)
|
19
19
|
# TODO: locking for non-GIL platforms
|
20
|
-
|
20
|
+
streams << StreamWrapper.new(_stream, _block)
|
21
21
|
end
|
22
22
|
|
23
23
|
def is_registered?(_stream)
|
@@ -44,18 +44,18 @@ module Linedump
|
|
44
44
|
|
45
45
|
private
|
46
46
|
|
47
|
+
attr_reader :streams
|
48
|
+
|
47
49
|
def load_worker
|
48
50
|
Thread.new do
|
49
|
-
looped = 0
|
50
51
|
begin
|
51
|
-
while
|
52
|
+
while ensure_open_streams
|
52
53
|
read_streams = load_monitored_streams
|
53
54
|
result = IO.select(read_streams, [], read_streams)
|
54
55
|
if result
|
55
56
|
process_ready_streams result[0]
|
56
57
|
discard_errored_streams result[2]
|
57
58
|
end
|
58
|
-
looped += 1
|
59
59
|
end
|
60
60
|
rescue ReloadSignal
|
61
61
|
retry
|
@@ -83,17 +83,23 @@ module Linedump
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def find_stream_wrapper(_stream)
|
86
|
-
|
86
|
+
streams.find { |s| s.stream == _stream }
|
87
87
|
end
|
88
88
|
|
89
89
|
def remove_wrapper(_wrapper, _reason)
|
90
90
|
# TODO: locking for non-GIL platforms
|
91
|
-
|
91
|
+
_wrapper.stream.close
|
92
|
+
streams.delete _wrapper
|
93
|
+
end
|
94
|
+
|
95
|
+
def ensure_open_streams
|
96
|
+
streams.delete_if { |w| w.stream.closed? }
|
97
|
+
!streams.empty?
|
92
98
|
end
|
93
99
|
|
94
100
|
def load_monitored_streams
|
95
101
|
# include stdin to prevent console enabled apps from locking
|
96
|
-
|
102
|
+
streams.map(&:stream) << $stdin
|
97
103
|
end
|
98
104
|
|
99
105
|
end
|
data/lib/linedump/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linedump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ignacio Baixas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -146,8 +146,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
146
|
version: '0'
|
147
147
|
requirements: []
|
148
148
|
rubyforge_project:
|
149
|
-
rubygems_version: 2.
|
149
|
+
rubygems_version: 2.6.2
|
150
150
|
signing_key:
|
151
151
|
specification_version: 4
|
152
152
|
summary: Process output stream listener helper
|
153
153
|
test_files: []
|
154
|
+
has_rdoc:
|