将Thor用于Ruby gem中的生成器

Dav*_*ows 4 ruby rubygems thor

如何设置gem以获得二进制命令,例如"project newProject"使用Thor的一组生成器命令来创建文件等?

一个好的答案将描述如何布置gem的骨架,当从命令行运行时,即"project newProject",在它运行的目录中创建一个名为"newProject.txt"的文件.

我已经看到Rails 3使用Thor为其发电机供电; 似乎是一个非常好的解决方案,我想在我正在研究的非Rails ruby​​ gem中使用类似的方法.尝试看Rails 3来源,但它有点迷宫,因此问题.

Der*_*ley 5

在您的gem项目中,您需要包含一个"bin"文件夹.此文件夹需要包含作为生成器的ruby脚本,而不包含文件扩展名.如果你使用像珠宝商这样的东西,它会在包装过程中自动扫描bin文件夹.安装gem时,gem系统会将bin文件夹中的文件放入ruby安装中,以便您可以像想要的那样运行它们.

bin文件只是普通的旧ruby脚本,没什么特别的.


And*_*rew 5

不知道你是否找到了你的解决方案,但有一个关于如何使用Thor制作生成器的Railscast插曲,如在Rails 3中所做的那样.这应该有所帮助.还有通过Platformatec 的本教程.

我意识到你不想制作Rails生成器,但是它们工作方式背后的基本思想得到了很好的解释,我认为这将帮助你走上正确的轨道.