首先,我没有使用rails。这是香草红宝石的应用。我读过packaging a CLI ruby application as a GEM。
所以我想我的问题是,这是红宝石的方式吗?这种布局是否适合类自动加载?
我来自PHP背景,我习惯于遵循PSR-0样式的应用程序布局(参见示例部分)。
答案 0 :(得分:1)
是的,构建和分发Ruby命令行应用程序的方式或多或少与该文章描述的一样:
bin
- exe就在这里lib/your_app.rb
- 需要lib/your_app
lib/your_app/whatever.rb
- 构建命令行应用程序的模块和文件your_app.gemspec
- gemspec;确保你提到有一个bin文件Rakefile
- 管理开发test
- 是的,测试将您的应用分解为lib
内的类和模块是完全可以的。通过使用RubyGems进行分发,命令行应用程序将位于用户的路径中,并且可以访问lib
中的所有内容。
RubyGems拥有分发命令行应用程序的一流支持;它不仅仅适用于图书馆。
答案 1 :(得分:0)
实际上,您可以使用console_runner gem从命令行界面(CLI)执行任何ruby文件。您需要做的就是在Ruby代码中添加注释(类似YARD的语法),然后从命令行执行它:
$ c_run /path/your_file.rb say_hello
/path/your_file.rb :
# @runnable
class MyClass
# @runnable
def say_hello
puts 'Hello!'
end
end