我是Ruby的新手,我正在尝试理解现有的Ruby代码。以下是代码段:
file File.join("ext", "abc") => ["ext/pqr"] do
puts "In"
#some more content
end
我从文档中了解到File.join将生成路径“ext / abc”。但是“=>”是什么这里的运营商呢?什么时候执行“执行”的主体?
答案 0 :(得分:1)
=>
用于在Ruby中的Hash中定义键/值项。
2.1.5 :002 > hash = { :foo => 1 }
=> {:foo=>1}
在您的特定情况下,File.join("ext", "abc")
(表示文件系统上的路径的String
)的结果成为哈希项的键,其中值是数组。
file "ext/abc" => ["ext/pqr"] do
puts "In"
#some more content
end
file
中的 rake
用于定义file task。 Hash中的数组表示文件依赖项数组。
换句话说,您告诉rake
执行某些操作以创建文件File.join("ext", "abc")
,但在执行任务之前(由do/end
块中的Ruby代码表示必须执行与数组中定义的文件匹配的所有任务,只要它们还不存在。