ruby - 包括带有 gem 的可执行文件

标签 ruby linux rubygems gemspecs

有问题的 gem 在我的 GItHub

我也在使用 Linux,特别是 Ubuntu。此时,我正在尝试使 gem 与 Linux/OSX 用户兼容,在它在 *nix 系统上正常工作后重点关注 Windows 用户。

所以我写了一个名为 fails 的 gem .它可用于使用 Ruby/Cucumber/Watir-webdriver 堆栈围绕以其他语言和其他框架编写的 Web 应用程序构建测试自动化套件。

它创建了强大的命令行生成工具,用于使用多个命令构建页面对象和功能文件,这些命令是:

fails g page <page object name>
fails f <feature file name>
fails n <new automated test suite name>

我已经编写了一个适当的可执行文件,在安装 gem 时应该允许用户调用 fails <arg> <arg> <arg>...etc从命令行。但是,在构建并安装 gem 时,我尝试通过调用 fails g page google 生成一个页面对象。但我得到了错误:

daniel@d:~/Downloads/fails_gem$ fails
/usr/local/bin/fails:23:in `load': /var/lib/gems/2.1.0/gems/fails-0.0.3/bin/fails:4: syntax error, unexpected tCONSTANT, expecting end-of-input (SyntaxError)
fails.rb ARGV[0] ARGV[1] ARGV[2] ARGV[3] ARGV[4] A...
                     ^
    from /usr/local/bin/fails:23:in `<main>'

这个错误告诉我我的可执行文件有问题,但我不太明白是什么。我需要能够调用 fails.rb最多九个命令行参数。我的可执行文件如下所示:

#!/usr/bin/env ruby

require 'fails'
fails.rb ARGV[0] ARGV[1] ARGV[2] ARGV[3] ARGV[4] ARGV[5] ARGV[6] ARGV[7] ARGV[8] ARGV[9]

gem 确实是新的和未打磨的,所以如果有兴趣,任何开源支持都会很棒!

最佳答案

您似乎对可执行文件 bin/fails 的内容有些困惑。这应该是普通的 Ruby。看起来您正在尝试使用某种组合 Ruby 和 shell 语法与行 fails.rb ARGV[0] ...,这是行不通的。

在这种情况下,我认为您只需要 require 'fails' 行。这应该加载文件 lib/fails.rb(因为 Rubygems 将添加 lib 到您的加载路径),然后是内容或 ARGV仍将在该文件中可用。

关于ruby - 包括带有 gem 的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32291525/

相关文章:

database - 在Linux(Fedora)中编写GUI应用程序的最佳编程语言是什么?

linux - 制作 : -c: Command not found

ruby - win32console已安装,但未按预期显示 'require'

ruby - 为什么我得到 "undefined method ` start_with ?'"?

css - rails 4 : Sass raises SyntaxError when precompiling assets on server but not on development computer

c++ - 将共享库链接到另一个共享库

ruby - 使用 Bundler 从 Github 安装 gem

ruby-on-rails - 使用 RVM 在 vi​​m 中重新生成 ctags

ruby - 在 rails 中安装 mimemagic 时出错

testing - cucumber vs capybara