Массив рецептов ruby ​​chef && = условный - PullRequest
0 голосов
/ 13 июня 2018

Я учусь рубину писать поваренные книги шеф-повара.Я шел по этому рецепту https://github.com/sous-chefs/mongodb/blob/master/recipes/default.rb. Я наткнулся на этот блок кода.

conflicting_recipes.each do |recipe| 
  allow_mongodb_instance_run &&= false if node.run_context.loaded_recipe?(recipe)
end

Я просмотрел документацию &&=, но для меня это не имело особого смысла.Может кто-нибудь, пожалуйста, позаботьтесь объяснить это мне.Спасибо

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Это немного неуклюжий способ проверить, настроен ли узел также для запуска более старой поваренной книги sc-mongodb до того, как эти две будут объединены вместе, потому что обе они приведут к конфликтам (обе поваренные книги пытаются настроить / установить одни и те же вещи.).

0 голосов
/ 13 июня 2018

Разверните выражение следующим образом:

allow_mongodb_instance_run = allow_mongodb_instance_run && false

Если allow_mongodb_instance_run истинно (не false или nil), оно становится false.

Если allow_mongodb_instance_run is false остается false.

, если allow_mongodb_instance_run равно nil, оно остается nil и не становится false.

Нет, я неЯ не знаю, зачем кому-то нужно это различие, но сохранение nil - единственное преимущество, о котором я могу подумать, только allow_mongodb_instance_run = false.

...