Où placer/accès au fichier de config dans gem?
Je suis en train d'écrire mon premier bijou et je voudrais des options spécifiques pour être récupérée et définie par l'utilisateur par le biais d'une config.fichier yml.
Où ce fichier doit être placé à l'intérieur de mon joyau de la structure du fichier et comment quelqu'un de modifier le fichier lors de l'installation de mon bijou? Je devine qu'ils peuvent passer à des options spécifiques lors de l'installation de la gemme, et ces options peuvent être mappées à la config.fichier yml, mais comment est-ce possible?
Aussi, est la meilleure façon de récupérer le fichier par l'intermédiaire de YAML.load_file?
J'ai regardé de Ryan railcasts sur la création d'un gem via le système de regroupement, mais il ne couvre pas ce thème.
Vous devez vous connecter pour publier un commentaire.
Je suis de sauter sur celui-ci un peu en retard mais je vous laisse un exemple de mise en œuvre de la façon dont je manipulent généralement ce, pour référence future.
Comme il a été mentionné, vous aurez généralement à permettre la configuration par le biais à la fois des fichiers et des tables de hachage. C'est assez facile et léger à inclure à la fois, de sorte que vous devriez le faire.
Quelque chose comme cela fonctionne pour moi, dans la plupart des scénarios:
Ajoutée une meilleure pratique serait d'avoir des valeurs par défaut pour toutes vos clés de configuration(comme dans l'exemple ci-dessus). De cette façon, vous êtes offrant à l'utilisateur une liberté dans la façon dont ils peuvent configurer votre bibliothèque.
undefined method 'to_sym' for {hash => 'var"}:Hash (NoMethodError
lorsque j'utilise quelque chose comme ça. Sa se plaindre de l'auto.méthode configure ().Si votre bijou comprend une commande qui peut être exécutée de manière interactive par l'utilisateur, il serait préférable d'invite pour toutes les précisions nécessaires sur la première manche. Un bon endroit pour enregistrer la configuration dans le répertoire home de l'utilisateur comme un point de fichier.
Si votre bijou est purement pour une utilisation dans un autre code comme une bibliothèque, puis de configuration doit être autorisé à être transmis sous la forme d'une table de hachage ou d'autres choses semblables.
Comme un bijou, vous devez autoriser les gens à l'interface avec elle comme ils le veulent. Vous ne pouvez pas assumer tout type d'application de la structure. Au lieu d'exposer une API qui permet aux développeurs de passer dans une table de hachage des options, ou une voie d'accès à leur propre fichier YAML que vous pouvez les lire et les analyser.
Mais d'essayer d'établir une convention de nommage des fichiers à partir d'un bijou n'est probablement pas ce que vous voulez.
Un autre modèle sans l'aide de fichiers de configuration:
https://robots.thoughtbot.com/mygem-configure-block