2010-02-25 98 views
1

我试图从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程序员之一注定要偶尔面对。或者,我错失了一些非常明显的东西。

回答

1

您的意思是super(@tmpfile)而不是super(@tmpname)

+0

事实证明我错过了一些非常明显的东西。再次。 – artemave 2010-02-25 17:30:24