que han estado tratando de deshacerse de todas las claves hash en mi archivo YAML que tienen valores vacíos (en blanco) o hashes vacías como valores.¿Cómo eliminar recursivamente todas las claves con valores vacíos de hash (YAML)?
Este earlier post me ayudó a hacerlo bien, pero el recursivo de una línea sale de mi volcado de YAML con hashes vacíos cada vez que hay una anidación suficientemente profunda.
Realmente agradecería cualquier ayuda en esto. ¡Gracias!
proc = Proc.new { |k, v| (v.kind_of?(Hash) && !v.empty?) ? (v.delete_if(&proc); nil) : v.blank? }
hash = {"x"=>{"m"=>{"n"=>{}}}, 'y' => 'content'}
hash.delete_if(&proc)
salida real
{"x"=>{"m"=>{}}, "y"=>"content"}
deseado de salida
{"y"=>"content"}
Mi versión (rieles): clase Hash delete_blank def delete_if { | k, v | v.blank? o (v.instance_of? (Hash) && v.delete_blank.empty?)} final final –
blanco usuario? en lugar de estar vacío? porque fallará en nil – msroot
¿Alguna razón por la que utilizas delete_if en lugar de rechazar? Usted – Donato