前段时间,我使用Ruby和Thor gem编写了一些命令行应用程序。现在,我需要创建一个Web界面,以使用这些CLI中现有的完全相同的功能。是否可以从Web应用程序调用Thor命令而不会吸引诸如%x{}
,exec()
和system
之类的内容?是否有像MyClass.invoke(:command, arg1, arg2, option1: '', option2: '')
这样更程序化的东西?
答案 0 :(得分:1)
你可以试试这个:
MyClass.start(args, config)
args是一个字符串数组,表示您在命令行上传递的选项,config是一个哈希值。
MyClass.start(["-f", "blah"], type: :yo)
您应该能够访问Thor类中的配置选项,如下所示:
config[:type] # => :yo