大家好,我刚接触 ruby,在 菜鸟教程 上看了基础语法的文档
我准备写一个辅助自己开发的命令行 gem,准备 gli 来辅助实现,但是我在看 gli 文档 的时候对其中的语法还是不理解,上面的教程没有看到这些写法,如下
#!/usr/bin/env ruby
require 'gli'
require 'hacer'
# inclue 是代表继承了 GLI 模块的 App 模块吗?
# 当前代码不在任何 Module 或者 class 内部,那这部分代码是属于哪个 Module 或者 class?
include GLI::App
program_desc 'A simple todo list'
# flag [:t,:tasklist] 是调用了一个方法?[ ] 代表的什么?: 又代表什么?
flag [:t,:tasklist], :default_value => File.join(ENV['HOME'],'.todolist')
# 这里没有迭代,为什么可以直接用 do?是什么意思?
pre do |global_options,command,options,args|
$todo_list = Hacer::Todolist.new(global_options[:tasklist])
end
# 这里是代码调用了 command 方法 创建了一个名为 add 的对象?
# 同上,这儿的 do 是怎么回事儿?
command :add do |c|
c.action do |global_options,options,args|
$todo_list.create(args)
end
end
可能问的很肤浅,不过本人确实是刚刚接触,实在没有查到关于这些语法的解释
希望大家可以从语法上给我讲解一下,非常感谢了 🙏