J'ai utilisé Windows cmd au lieu d'Eclipse IDE. Je vais montrer les étapes que j'ai utilisées pour trouver les erreurs pour le code et enfin les corriger. Le plugin DLTK n'est pas en faute ici. Le fichier de module et le script de test se trouvent dans le même dossier.
LESSON - Le nom du module et le nom de la constante dans les modules DOIVENT commencer par une majuscule. Pourquoi, je ne sais pas.
aModule.rb
module aModule
aConstant = 7
end
test.rb
require 'aModule'
puts aModule::aConstant
cmd: cd dans le dossier test.rb et ruby Test.rb
erreur: `` require ': ne peut pas charger un tel fichier - tokenizer.rb (LoadError) ` aide:Ruby 'require' error: cannot load such file
Ruby 1.9 has removed the current directory from the load path, and so you will need to do a relative require on this file, as Pascal says:
require './tokenizer'
There's no need to suffix it with .rb, as Ruby's smart enough to know that's what you mean anyway.
J'ai fait les modifications suivantes:
test.rb
require './aModule'
puts aModule::aConstant
cmd:ruby Test.rb
erreur:class/module name must be CONSTANT (SyntaxError)
dans aModule.rb aide:NameError in Ruby
J'ai fait les modifications suivantes:
aModule.rb
module AModule # capital
aConstant = 7
end
test.rb
require './AModule'
puts AModule::aConstant
cmd: Test de rubis.rb erreur:undefined method 'aConstant' for AModule:Module (NoMethodError)
aide: Utilisé le lien ci-dessus. Je pense que constant doit aussi être nommé avec capital.
Code de travail final:
aModule.rb
module AModule # capital
AConstant = 7 # capital
end
test.rb
require './AModule'
puts AModule::AConstant
WTF est Ruby comme ça ??? Et pourquoi ai-je besoin d'ajouter ./
avant un nom de module quand il est dans le même dossier que le script de test?
Ne peut être reproduit. – sawa
@sawa - En fait, je l'ai défini. J'ai fait une petite erreur minuscule dans les puts. Je l'ai réparé maintenant. La même erreur reste. Pouvez-vous s'il vous plait me mettre au neutre si vous ne voyez aucune erreur ou lacune dans ma question? Merci. –
Mon commentaire s'applique à votre question après l'édition (ma réponse supprimée appliquée à votre question avant la modification). Je ne suivrai pas votre demande de vote de quelque façon que ce soit. Vous n'êtes pas censé demander cela. De plus, comme je l'ai écrit, il ne peut pas être reproduit. – sawa