包括 gem 的可执行文件
including executable file with gem
有问题的 gem 在我的 GItHub
我也在 Linux,特别是 Ubuntu。我正在尝试使 gem 与 Linux/OSX 用户兼容,重点放在 Windows 用户,因为它在 *nix 系统上正常工作。
所以我写了一个gem,叫做fails
。它可用于构建一个测试自动化套件,其中 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
仍将在该文件中可用。
有问题的 gem 在我的 GItHub
我也在 Linux,特别是 Ubuntu。我正在尝试使 gem 与 Linux/OSX 用户兼容,重点放在 Windows 用户,因为它在 *nix 系统上正常工作。
所以我写了一个gem,叫做fails
。它可用于构建一个测试自动化套件,其中 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
仍将在该文件中可用。