2016-10-22 1 views
0

Je suis en train d'écrire mon premier plugin SketchUp et je souhaite stocker une option dans un fichier ini. A cet effet, je l'ai installé la IniFile Gem dans la console SketchUp et je le fichier options.ini suivant dans le répertoire Plugins:Le chargement du fichier * .ini échoue dans l'API SketchUp Ruby

[Options] 
option1 = value1 
option2 = value2 

Et je le code suivant:

conf = IniFile.load('options.ini') 
options = conf["Options"] 

Quand je lance le script, pour une raison quelconque la méthode de charge ne peut pas charger le fichier ini, et je suis arrivé une exception d'exécution sur la ligne suivante, pour essayer d'accéder à « options » sur un objet NilClass:

Error: #<NoMethodError: undefined method `[]' for nil:NilClass> 

Avez Somebod Y avait le même problème avant? Toute aide est appréciée!

+0

Comment le script sait où trouver le fichier ini? Vous devez fournir le bon chemin vers le fichier ini. – Casper

+0

Il se trouve dans le même dossier que le fichier de script. J'ai également essayé avec './options.ini', mais cela n'a pas fonctionné aussi. –

Répondre

2

J'ai réussi à trouver le problème. Sketchup stocke uniquement les plugins dans le dossier plugin, mais les appelle depuis le dossier Documents (sous Windows). Par conséquent, on ne peut pas utiliser le chemin relatif dans leurs scripts. Ajout de ce qui suit résolu le problème:

conf = IniFile.load(File.dirname(__FILE__) + '/options.ini')