我一直在学习 Ruby 并在自己的项目中使用 Thor,我想知道如何使用 Thor 拆分参数。例如:
scaffold Post name:string title:string content:text
我想知道如何将name:string
、title:string
和content:text
拆分成一个对象数组,其中包含“name ”和“类型”。
最佳答案
假设您有一个包含以下内容的文件 scaffold.rb
:
array = ARGV.map { |column_string| column_string.split(":").first }
puts array.inspect # or 'p array'
然后,如果我们运行 ruby scaffold.rb name:string title:string content:text
,你会得到
["name", "title", "content"]
如果我们的代码是 p ARGV
,那么输出将是 ["name:string", "title:string", "content:text"]
。因此,我们将得到我们之后传递的任何内容,ruby scaffold.rb
作为在代码内的 ARGV
变量中按空格分隔的数组。我们可以在代码中随意操作这个数组。
免责声明:我不了解 Thor,但想展示这是如何在 Ruby 中完成的
关于ruby-on-rails - 我如何与 Ruby 和 Thor 分开争论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473093/