麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

如何寫漂亮的Rakefile

2020-02-24 15:36:06
字體:
來源:轉載
供稿:網友

相對于Rake,Ruby比Make要更好用一些,但是它們之間有不同的地方就是Rakefile本來是一段Ruby代碼,而且Rake可以很直接地做任何Ruby能做的事,那么你知道如何寫漂亮的Rakefile嗎?

不過,代碼始終是代碼,Makefile 尚且可以寫得很亂,Rakefile 要寫亂就更容易了,幸運地是,Rake 提供了一些功能讓我們可以來對 Rakefile 做一些組織工作。

其中之一就是 import 功能,把不同功能的 task 寫到不同的文件中,例如,像這個樣子:

復制代碼 代碼如下:

Rakefile
task/
? +-- doc.rake
? +-- compile.rake
? `-- deploy.rake


這樣,在 Rakefile 里寫上

?

?


這樣的語句導入各個子任務即可,不同的任務寫到不同的文件里面就不會一團糟了。而且,import 同 Ruby 自己的 require 不一樣,import 并不是立即進行導入的,而是在整個 Rakefile 執行結束之后才全部導入,因此,可以在任意的地方寫 import ,而不用擔心依賴關系,需要共享的變量之類的只要在主 Rakefile 中定義了即可。

?

import 是組織不同的功能模塊,除此之外,Rake 還允許我們對一些重復性的任務進行抽象,具體來說,就是自定義的 task 。通常情況下,我們使用 Rake 提供的通用 task 和文件 task 來構造我們需要完成的工作,除此之外,Rake 還自帶了一些針對特殊任務的 task 類型,例如構建 rdoc 或者運行 test 等。實際上,一種任務就是一個普通的 Ruby 類,我們可以繼承 Rake 里的 Task 類并重新定義相關的函數來實現自定義的 task 類型。不過,這樣多少有些麻煩,實際上,很多時候我們要定義的任務都可以分解為一些小任務用內置的通用 task 和 file task 來實現的,這個時候可以用 Tasklib 來更方便地定義自定義的任務。

具體地來說,就是寫一個類,繼承自 Tasklib (雖然實際上只是約定而并不是必須的),然后在這個類的初始化函數里用 task 或者 file 來定義實際完成任務的子 task 即可。用一個實際的例子來說,比如說,我們可以定義一個 ErlcTask ,可以用來把一些 Erlang 文件編譯到某個目錄下,并在 clean 的時候自動能把編譯出來的 .beam 文件清理掉:


首先定義一些 Task 相關的屬性,在初始化函數里設置初值,然后調用 block 來填充實際的值,最后調用 define 函數,define 函數就使用 directory 、file 和 task 分別定義了建立目錄、編譯和清理的任務。如果了解 Ruby 和 Rake 的基本語法的話,應該很容易看明白了。

?

接下來把這個文件保存到某個 .rb 里,然后在 Rakefile 里 require 之,就可以這樣寫了:

?

看完本文內容后大家知道如何寫漂亮的Rakefile了嗎?希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 一级看片免费视频 | 一边吃奶一边摸下娇喘 | 99影视在线视频免费观看 | 欧美性受xxx黑人xyx性爽 | 成人午夜毛片 | 黄色毛片免费看 | 99国产精品国产免费观看 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 91精品国产99久久久久久红楼 | 久久精品无码一区二区日韩av | 成码无人av片在线观看网站 | 亚洲午夜影院在线观看 | 一级毛片真人免费播放视频 | 国产精品视频二区不卡 | 黄色美女免费 | 久久777国产线看观看精品 | 免费人成年短视频在线观看网站 | 调教小男生抽打尿孔嗯啊视频 | 成年人网站视频免费 | 91精品国产91 | 午夜视| 欧美成人精品欧美一级乱黄 | 日韩三级伦理在线观看 | 成人一级黄色大片 | av之家在线观看 | 欧美成人免费香蕉 | 91精品视频在线看 | 毛片网站网址 | 亚洲一区二区三区日本久久九 | 欧美一级二级毛片视频 | 亚洲综合一区二区三区 | 亚洲日韩精品欧美一区二区 | 成人在线免费看 | 香蕉成人在线观看 | 国产精品看片 | 黄色av网 | 欧美成人免费看 | 高清成人在线 | 日本在线一区二区 | 国产精品999在线观看 | 黄网站免费在线看 |