2013-12-09 4 views
6

Я иду через Capistrano справочникЧто означает ключевое слово «set» в рубине?

https://github.com/leehambley/capistrano-handbook/blob/master/index.markdown

И увидеть ключевое слово «установить» появляются

set :deploy_via, :remote_cache 

ли установить в этом примере установлен символ :deploy_via в :remote_cache?

+3

'set' не рубин ключевого слова' capistrano' команда –

ответ

2

set не имеет особого значения в Ruby. На самом деле, это не ключевое слово Ruby, это команда Capistrano, входящая в состав Capistrano DSL.

Технически говоря, это метод Руби. Вы можете увидеть method definition.

def set(key, value) 
    config[key] = value 
end 
5

Это не ключевое слово в стандартном рубине. Это пример элемента на определенном домене (DSL).

В принципе, DSL позволяет работать на более высоком уровне абстракции, предоставляя более целенаправленные конструкции, чем язык общего назначения, такой как Ruby. Примером этого является «набор». Вероятно, это просто функция Ruby, которую вы на самом деле вызываете, но когда вы ее используете, она больше похожа на конструкцию языка. Ruby особенно хорош в написании DSL

Что касается того, что это делает в Capistrano, я понятия не имею, я никогда не использовал Capistrano. :)

5

set не рубин ключевого слова capistrano команда
от источника Capistrano

def set(key, value) 
    @properties[key] = value 
end 
3

Остальные ребята украли мой гром, но here это обсуждение set в контексте DSL Capistrano:

Этот метод является основным способом определения переменных, к которым можно получить доступ в любом месте в конфигурации Capistrano. Это позволяет вам установить как немедленные d отложенных переменных, в зависимости от того, использовал ли вы блок для определения переменной. "

0

Это можно было бы назвать как„bareword“, но не keyword, так как это, как Руби названия коллекции„зарезервированных слов“для языка. Таким образом, это либо переменная или имя метода, в связи с тем, что она не предварённым @ или $ или @@ и не капитализируются.

это на самом деле просто метод.

Смежные вопросы