2010-02-25 4 views
1

Je suis en train d'exécuter l'exemple DelegateClass de http://ruby-doc.org/stdlib/libdoc/delegate/rdoc/files/delegate_rb.htmlexemple de délégation maudit?

Voici le code:

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 

Ce que je reçois dans RIR est

artem:~/projects/weatherdiff (master)$ irb 
irb(main):001:0> require 'test.rb' 
=> true 
irb(main):002:0> t = TmpFile.new 'ttttt' 
=> nil 

On dirait un de ces WTFs Arcane programmeurs sont condamnés à faire face de temps en temps. Sinon, il me manque quelque chose d'évident.

Répondre

1

Vouliez-vous dire super(@tmpfile) plutôt que super(@tmpname)?

+0

Il s'est avéré qu'il me manquait quelque chose d'évident. Encore. – artemave

Questions connexes