我正在尝试使用main
gem 来制作命令行实用程序。这是在最近的 Ruby Rogues 播客中介绍的。
如果我将所有代码放在一个文件中并需要该文件,那么 rspec 会给我一个错误,因为主 dsl 将 rpsec 视为主实用程序的命令行调用。
我可以将一个方法分解成一个新文件并让 rspec 需要该文件。假设你有这个程序,但想把do_something
方法放在一个单独的文件中用 rspec 测试:
require 'main'
def do_something(foo)
puts "foo is #{foo}"
end
Main {
argument('foo'){
required # this is the default
cast :int # value cast to Fixnum
validate{|foo| foo == 42} # raises error in failure case
description 'the foo param' # shown in --help
}
do_something(arguments['foo'].value)
}
分发/部署具有多个文件的 ruby 命令行程序的便捷方法是什么?也许创造一个宝石?