Travailler avec Rails 3.1 (rc5), et je remarque que tout fichier coffeescript que j'inclus dans rails (ou sprockets) ajoute du code javascript d'initialisation en haut et en bas. En d'autres termes, un fichier .js.coffee vide est affiché comme ceci :
(function() {
}).call(this);
C'est irritant car cela perturbe la portée de mon javascript (à moins que je ne sache vraiment pas ce que je fais). Je sépare généralement toutes mes classes javascript dans des fichiers séparés et je crois que le fait d'avoir ce code de fonction enveloppant mes classes les met simplement hors de portée les unes des autres. Ou, du moins, je semble ne pas pouvoir y accéder car j'obtiens continuellement des erreurs indéfinies.
Y a-t-il un moyen de remplacer cela? Il semble que ce fichier dans sprockets ait à voir avec l'ajout de ce code : https://github.com/sstephenson/sprockets/blob/master/lib/sprockets/jst_processor.rb
Je comprends qu'envelopper tout dans une fonction pourrait sembler être une commodité supplémentaire car alors rien n'est exécuté tant que le DOM n'est pas chargé, mais autant que je puisse dire, cela perturbe simplement ma portée.