我經歷了Capistrano的手冊「set」關鍵字在ruby中的含義是什麼?
https://github.com/leehambley/capistrano-handbook/blob/master/index.markdown
而看到關鍵字 「設置」 出現
set :deploy_via, :remote_cache
是否在這個例子中設置符號:deploy_via
到:remote_cache
設置?
我經歷了Capistrano的手冊「set」關鍵字在ruby中的含義是什麼?
https://github.com/leehambley/capistrano-handbook/blob/master/index.markdown
而看到關鍵字 「設置」 出現
set :deploy_via, :remote_cache
是否在這個例子中設置符號:deploy_via
到:remote_cache
設置?
set
在Ruby中沒有特別的意義。事實上,它不是Ruby關鍵字,它是Capistrano DSL的一部分,屬於Capistrano命令。
從技術上講,這是一種Ruby方法。你可以看到method definition。
def set(key, value)
config[key] = value
end
這不是標準Ruby中的關鍵字。它是域特定語言(DSL)中元素的一個示例。
基本上,通過提供比Ruby等通用語言更多的針對性構造,DSL可以讓您在更高的抽象層次上工作。這裏的「set」就是一個例子。這可能只是你實際調用的Ruby中的一個函數,但是當你使用它時,它本身就更像是一種語言結構。 Ruby特別擅長編寫DSL
至於在Capistrano中做了什麼,我不知道,我從來沒有使用Capistrano。 :)
set
不是紅寶石關鍵字capistrano
從Capistrano的源
其他的人偷了我的風頭命令
,但here是set
的Capistrano的DSL的框架內進行討論:
「此方法是定義變量的主要方式,可以在Capistrano配置中的任何位置進行訪問。它允許您將立即和d延遲變量,取決於您是否使用塊來定義變量。「
它可以被稱爲‘裸詞’,但不是keyword,因爲這是怎樣的Ruby名字的集合‘保留字’的語言。因此,它可以是一個變量或方法名稱,由於它不是用@或$ @@或前綴,而不是資本。
它實際上只是一個方法。
'set'不是紅寶石的關鍵字是'capistrano'命令 –