При написании пользовательских ресурсов в шеф-поваре мы определяем атрибуты, их тип, их значение по умолчанию и обязательность их указания или нет, например.
attribute :plugin, kind_of: String, required: true
attribute :after_plugin, kind_of: String, required: false, :default => 'pam_unix.so'
Предположим, мне нужно взять атрибут, который является хешем, например
attribute :after, kind_of: Hash, required: false, :default => {:search_interface => nil, :search_control => nil, :search_plugin => nil}
Здесь я упомянул required: false
, что означает, что пользователь не обязан предоставлять хэш.
Мне нужно указать, что если указан хэш, то :search_interface
является обязательным
Как я могу этого добиться?