Skip to content

Commit 5e90e8c

Browse files
authored
Merge pull request #116 from Watson1978/pathname
Accept the object that has #to_path in Logger::LogDevice.new
2 parents ccc3c78 + 08f9fb3 commit 5e90e8c

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

lib/logger/log_device.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ def fixup_mode(dev, filename)
9999
else
100100
def fixup_mode(dev, filename)
101101
return dev if @binmode
102+
filename = filename.respond_to?(:to_path) ? filename.to_path : filename
102103
dev.autoclose = false
103104
old_dev = dev
104105
dev = File.new(dev.fileno, mode: MODE, path: filename)

test/logger/test_logdevice.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require 'logger'
44
require 'tempfile'
55
require 'tmpdir'
6+
require 'pathname'
67

78
class TestLogDevice < Test::Unit::TestCase
89
class LogExcnRaiser
@@ -79,6 +80,20 @@ def test_initialize
7980
File.unlink(tempfile)
8081
tempfile.close(true)
8182
end
83+
# logfile object with Pathname object
84+
tempfile = Tempfile.new("logger")
85+
pathname = Pathname.new(tempfile.path)
86+
logdev = d(pathname)
87+
begin
88+
logdev.write('world')
89+
logfile = File.read(pathname)
90+
assert_equal(1, logfile.split(/\n/).size)
91+
assert_match(/^world$/, logfile)
92+
assert_equal(pathname, logdev.filename)
93+
ensure
94+
logdev.close
95+
tempfile.close(true)
96+
end
8297
end
8398

8499
def test_write

0 commit comments

Comments
 (0)