file-tail 1.0.2 → 1.0.3
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.
- data/CHANGES +8 -1
- data/{README.en → README} +0 -0
- data/VERSION +1 -1
- data/examples/pager.rb +0 -1
- data/lib/file/tail.rb +13 -13
- data/lib/file/tail/version.rb +1 -1
- metadata +52 -44
data/CHANGES
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
2008-04-07 * 1.0.3 * Danny Colligan <danny.colligan@sendori.com> reported a
|
2
|
+
memory leak in long running scripts using file-tail. I
|
3
|
+
think this might be a ruby related problem, which is
|
4
|
+
caused/aggravated by using yield after having &block
|
5
|
+
parameter in a method. I changed file-tail to only use
|
6
|
+
block.call, which seems to improve the memory behaviour. I
|
7
|
+
am still not sure, where the problem actually stems
|
8
|
+
from, though.
|
1
9
|
2007-04-19 * 1.0.2 * make_doc.rb was missing from the source archive. Thanks to
|
2
10
|
Rick Ohnemus <rick.ohnemus@systemware.com> for reporting it.
|
3
11
|
2007-04-19 * 1.0.1 * Bugfix: File::Tail::Logfile#open with block, now closes
|
@@ -55,5 +63,4 @@
|
|
55
63
|
* The API has changed - but I think very few people
|
56
64
|
care at the moment.
|
57
65
|
* Lots of tests added.
|
58
|
-
|
59
66
|
2002-07-30 * 0.0.1 * Initial Release
|
data/{README.en → README}
RENAMED
File without changes
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.3
|
data/examples/pager.rb
CHANGED
data/lib/file/tail.rb
CHANGED
@@ -96,7 +96,7 @@ class File
|
|
96
96
|
#
|
97
97
|
# Every attribute of File::Tail can be set with a <code>:attributename =>
|
98
98
|
# value</code> option.
|
99
|
-
def self.open(filename, opts = {}) # :yields: file
|
99
|
+
def self.open(filename, opts = {}, &block) # :yields: file
|
100
100
|
file = new filename
|
101
101
|
opts.each do |o, v|
|
102
102
|
writer = o.to_s + "="
|
@@ -118,7 +118,7 @@ class File
|
|
118
118
|
end
|
119
119
|
if block_given?
|
120
120
|
begin
|
121
|
-
|
121
|
+
block.call file
|
122
122
|
ensure
|
123
123
|
file.close
|
124
124
|
nil
|
@@ -128,13 +128,14 @@ class File
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
# Like open, but yields to every new line encountered in the logfile
|
132
|
-
|
131
|
+
# Like open, but yields to every new line encountered in the logfile in
|
132
|
+
# +block+.
|
133
|
+
def self.tail(filename, opts = {}, &block)
|
133
134
|
if ([ :forward, :backward ] & opts.keys).empty?
|
134
135
|
opts[:backward] = 0
|
135
136
|
end
|
136
137
|
open(filename, opts) do |log|
|
137
|
-
log.tail { |line|
|
138
|
+
log.tail { |line| block.call line }
|
138
139
|
end
|
139
140
|
end
|
140
141
|
end
|
@@ -296,7 +297,7 @@ class File
|
|
296
297
|
block = lambda { |line| result << line }
|
297
298
|
array_result = true
|
298
299
|
end
|
299
|
-
|
300
|
+
preset_attributes unless @lines
|
300
301
|
loop do
|
301
302
|
begin
|
302
303
|
restat
|
@@ -317,10 +318,10 @@ class File
|
|
317
318
|
|
318
319
|
private
|
319
320
|
|
320
|
-
def read_line
|
321
|
+
def read_line(&block)
|
321
322
|
if @n
|
322
323
|
until @n == 0
|
323
|
-
|
324
|
+
block.call readline
|
324
325
|
@lines += 1
|
325
326
|
@no_read = 0
|
326
327
|
@n -= 1
|
@@ -328,7 +329,7 @@ class File
|
|
328
329
|
end
|
329
330
|
raise ReturnException
|
330
331
|
else
|
331
|
-
|
332
|
+
block.call readline
|
332
333
|
@lines += 1
|
333
334
|
@no_read = 0
|
334
335
|
debug
|
@@ -344,7 +345,7 @@ class File
|
|
344
345
|
raise ReopenException
|
345
346
|
end
|
346
347
|
|
347
|
-
def
|
348
|
+
def preset_attributes
|
348
349
|
@reopen_deleted = true if @reopen_deleted.nil?
|
349
350
|
@reopen_suspicious = true if @reopen_suspicious.nil?
|
350
351
|
@break_if_eof = false if @break_if_eof.nil?
|
@@ -410,13 +411,12 @@ class File
|
|
410
411
|
|
411
412
|
def debug
|
412
413
|
$DEBUG or return
|
413
|
-
|
414
|
+
STDERR.puts({
|
414
415
|
:lines => @lines,
|
415
416
|
:interval => @interval,
|
416
417
|
:no_read => @no_read,
|
417
418
|
:n => @n,
|
418
|
-
}
|
419
|
-
$stderr.print h.inspect, "\n"
|
419
|
+
}.inspect)
|
420
420
|
end
|
421
421
|
end
|
422
422
|
end
|
data/lib/file/tail/version.rb
CHANGED
metadata
CHANGED
@@ -1,63 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.8.11
|
3
|
-
specification_version: 1
|
4
2
|
name: file-tail
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2007-04-19 00:00:00 +02:00
|
8
|
-
summary: File::Tail for Ruby
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: flori@ping.de
|
12
|
-
homepage: http://file-tail.rubyforge.org
|
13
|
-
rubyforge_project: file-tail
|
14
|
-
description: Library to tail files in Ruby
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 1.0.3
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
6
|
authors:
|
29
7
|
- Florian Frank
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-04-07 00:00:00 +02:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Library to tail files in Ruby
|
17
|
+
email: flori@ping.de
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
30
24
|
files:
|
31
|
-
- VERSION
|
32
|
-
- tests
|
33
|
-
- GPL
|
34
|
-
- README.en
|
35
25
|
- install.rb
|
36
|
-
- Rakefile
|
37
|
-
- examples
|
38
26
|
- lib
|
39
|
-
- make_doc.rb
|
40
|
-
- CHANGES
|
41
|
-
- tests/test_file-tail.rb
|
42
|
-
- examples/pager.rb
|
43
|
-
- examples/tail.rb
|
44
27
|
- lib/file
|
45
28
|
- lib/file/tail
|
46
|
-
- lib/file/tail.rb
|
47
29
|
- lib/file/tail/version.rb
|
48
|
-
|
30
|
+
- lib/file/tail.rb
|
31
|
+
- make_doc.rb
|
32
|
+
- README
|
33
|
+
- CHANGES
|
34
|
+
- VERSION
|
35
|
+
- tests
|
49
36
|
- tests/test_file-tail.rb
|
37
|
+
- Rakefile
|
38
|
+
- GPL
|
39
|
+
- examples
|
40
|
+
- examples/tail.rb
|
41
|
+
- examples/pager.rb
|
42
|
+
has_rdoc: true
|
43
|
+
homepage: http://file-tail.rubyforge.org
|
44
|
+
post_install_message:
|
50
45
|
rdoc_options:
|
51
46
|
- --title
|
52
47
|
- File::Tail
|
53
48
|
- --line-numbers
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
version:
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: "0"
|
62
|
+
version:
|
60
63
|
requirements: []
|
61
64
|
|
62
|
-
|
63
|
-
|
65
|
+
rubyforge_project: file-tail
|
66
|
+
rubygems_version: 1.0.1
|
67
|
+
signing_key:
|
68
|
+
specification_version: 2
|
69
|
+
summary: File::Tail for Ruby
|
70
|
+
test_files:
|
71
|
+
- tests/test_file-tail.rb
|