困惑于厨师语法

时间:2018-06-01 20:04:11

标签: ruby chef

请查看以下一行厨师代码:

node.default['apache']['dir']          = '/etc/apache2'

在官方厨师文档中,它说'node'是一个对象,'default'是它的一种方法,那么方括号(我认为这是哈希语法)如何遵循一种方法?

我来自Python背景,我是Ruby的新手,也许这是一般语法,或者这可能是特定于Chef的语法,我只是对这种语法感到困惑。

1 个答案:

答案 0 :(得分:2)

func startCamera(){ if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) { let imagePicker = UIImagePickerController() imagePicker.delegate = self imagePicker.sourceType = UIImagePickerControllerSourceType.camera imagePicker.allowsEditing = true self.present(imagePicker, animated: true, completion: nil) } (它实际上是node.default()的别名)返回node.attributes().default()的实例,它的工作方式类似于普通Chef::Node::VividMash对象,但实现了深层集合你在那里看到的行为(在那里你可以设置一个深层嵌套的密钥而不创建干预级别)。

不要担心,我们会做很多对象技巧,让DSL看起来尽可能好。