在 Chef 中编写自定义资源时,我们定义属性、它们的类型、它们的默认值以及它们是否必须指定,例如
attribute :plugin, kind_of: String, required: true
attribute :after_plugin, kind_of: String, required: false, :default => 'pam_unix.so'
假设我需要一个类似于 Hash 的属性
attribute :after, kind_of: Hash, required: false, :default => {:search_interface => nil, :search_control => nil, :search_plugin => nil}
在这里我已经提到required: false
这意味着用户不需要提供哈希。
我需要指定如果给出哈希,那么:search_interface
是强制性的
我怎样才能做到这一点?