我正在尝试构建一个命令行红宝石 创业板。我正在使用bundler创建创业板,并在本地安装创业板。它生成了所需的目录。我还能够测试,如果我需要我的宝石,我可以在里面使用方法。我正试图使命令行部分现在工作,但似乎无法使它工作。我想做些像
gemname command类似于rspec的工作方式:
rspec test/whatever.rb任何关于如何能够通过命令行执行的帮助都是很棒的。
发布于 2014-01-27 04:36:06
为了声明可执行文件,您必须在yourgem.gemspec中创建一个正确的行
`git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }这一行以及其他有用的行是由bundle gem yourgem命令生成的。只需执行它,然后根据您的需要修复yourgem.gemspec。将可执行文件放入gem的bin/文件夹,并将所有库(包括版本)放入lib/文件夹。
下一步是使用二进制文件。当您在系统中安装创业板时,二进制文件夹将自动包含到二进制搜索路径中。所以你的宝石可以从任何地方执行。但是,当您的gem没有安装时,您仍然能够与邦德勒的执行人员进行如下简化:
bundle exec bin/your_exec它从lib/文件夹中选择需求库,可执行文件将正常工作。
要确保可执行文件工作正常,请使用gem build yourgem.gemspec构建gem,然后用gem install yourgem.gem安装它,然后尝试。
发布于 2014-02-19 13:58:56
我认为问题是你还没有完成你的代码。检查git ls-files -- bin/*是否向您显示要执行的脚本。
当您提交文件时,git ls-files将返回它,规范将能够加载脚本。
发布于 2014-01-24 21:38:20
查看这些博客文章:http://robdodson.me/blog/2012/06/14/how-to-write-a-command-line-ruby-gem/ http://rubylearning.com/blog/2011/01/03/how-do-i-make-a-command-line-tool-in-ruby/
我不太清楚你到目前为止建立了什么,但这里有几点值得关注的地方:
#!/usr/bin/env ruby表示可执行文件中的第一行(在/bin文件夹中)。chmod +x filname使其可执行ARGV[0]变量从ARGV[0]检索s.executables << 'your_file'将可执行文件添加到Add规范中https://stackoverflow.com/questions/21342742
复制相似问题