我正在学习红宝石来写厨师食谱。我正在经历这个食谱 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
我浏览了&&=
的文档但对我来说没什么意义。有人可以关心向我解释这个。感谢
答案 0 :(得分:1)
像这样扩展表达式:
allow_mongodb_instance_run = allow_mongodb_instance_run && false
如果allow_mongodb_instance_run
是真实的(不是false
或nil
),则会变为false
。
如果allow_mongodb_instance_run
为false
,则保持false
。
如果allow_mongodb_instance_run
为nil
,则它仍为nil
,且不会成为false
。
不,我不知道为什么有人需要这种区别,但保留nil
是我能想到的唯一好处allow_mongodb_instance_run = false
。
答案 1 :(得分:0)
这是一种稍微尴尬的方法,检查节点是否也设置为运行旧的25px
食谱,然后将两者合并回来,因为两者都会导致冲突(两个烹饪书都试图配置/安装同样的事情)。