ruby chef recipe array&& =有条件的

时间:2018-06-12 23:27:08

标签: ruby chef

我正在学习红宝石来写厨师食谱。我正在经历这个食谱 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 :(得分:1)

像这样扩展表达式:

allow_mongodb_instance_run = allow_mongodb_instance_run && false

如果allow_mongodb_instance_run是真实的(不是falsenil),则会变为false

如果allow_mongodb_instance_runfalse,则保持false

如果allow_mongodb_instance_runnil,则它仍为nil,且不会成为false

不,我不知道为什么有人需要这种区别,但保留nil是我能想到的唯一好处allow_mongodb_instance_run = false

答案 1 :(得分:0)

这是一种稍微尴尬的方法,检查节点是否也设置为运行旧的25px食谱,然后将两者合并回来,因为两者都会导致冲突(两个烹饪书都试图配置/安装同样的事情)。