gpt4 book ai didi

ruby - rake 上的 "desc ' description'"背后的魔法是什么?

转载 作者:行者123 更新时间:2023-12-04 14:41:53 28 4
gpt4 key购买 nike

例如在
https://github.com/locomotivecms/wagon/blob/master/Rakefile#L23

desc 'build the gem and release it to rubygems.org'
task release: :gem do
sh "gem push pkg/locomotivecms_wagon-#{gemspec.version}.gem"
end

当我跑 rake --task ,它作为描述返回。
rake clobber_package   # Remove package products
rake gem # Build the gem file locomotivecms_wagon-2.2.0.beta1.gem
rake package # Build all the packages
rake release # build the gem and release it to rubygems.org
rake repackage # Force a rebuild of the package files
rake spec # Run RSpec code examples
rake spec:integration # Run RSpec code examples
rake spec:unit # Run RSpec code examples

但我不明白他们怎么能接受描述,不是每次描述调用时都会被替换吗?他们怎么知 Prop 体的描述属于具体的任务?

最佳答案

想象一下具有状态的简单 DSL(非常幼稚的实现):

@tasks = []
@current = nil

def desc text
@current = Task.new(desc: text)
end

def task params, &cb
@current.update(params)
yield
....
@tasks << @current
@current = nil
end
上面的代码需要额外的检查等,但想法是:有状态的 DSL 收集任务及其描述。

关于ruby - rake 上的 "desc ' description'"背后的魔法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37826890/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com