Ruby CLI应用程序的推荐布局

时间:2012-01-14 15:36:03

标签: ruby architecture command-line-interface

首先,我没有使用rails。这是香草红宝石的应用。我读过packaging a CLI ruby application as a GEM

所以我想我的问题是,这是红宝石的方式吗?这种布局是否适合类自动加载?

我来自PHP背景,我习惯于遵循PSR-0样式的应用程序布局(参见示例部分)。

2 个答案:

答案 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