我正在尝试从http://ruby-doc.org/stdlib/libdoc/delegate/rdoc/files/delegate_rb.html
运行DelegateClass示例以下是代码:
require 'delegate'
require 'tmpdir'
class TmpFile < DelegateClass(File)
def initialize(basename, tmpdir=Dir.tmpdir)
@tmpfile = File.new("#{tmpdir}/#{basename}.tmp", File::RDWR|File::CREAT|File::EXCL, 0600)
super(@tmpname)
end
end
我在irb中得到的是
artem:~/projects/weatherdiff (master)$ irb
irb(main):001:0> require 'test.rb'
=> true
irb(main):002:0> t = TmpFile.new 'ttttt'
=> nil
看起来这些神秘的wtfs程序员之一注定要经常面对。或者,我错过了一些令人眼花缭乱的事情。
答案 0 :(得分:1)
您的意思是super(@tmpfile)
而不是super(@tmpname)
吗?