¿Hay alguna manera agradable (una línea) de escribir un hash en rubí con alguna entrada solo allí si se cumple una condición? Pensé enClave/valor condicional en un hash de ruby
{:a => 'a', :b => ('b' if condition)}
pero que deja :b == nil
si no se cumple la condición. Me doy cuenta de que esto podría hacerse fácilmente en dos líneas más o menos, pero sería mucho mejor en una línea (por ejemplo, al pasar el hash a una función).
¿Me falta (todavía) otra de las increíbles características de ruby aquí? ;)
¿Qué desea para 'hash [: b]' cuando la condición no se cumple? En hash ordinario, obtendrá 'nil' de todos modos si no hay una clave coincidente. – sawa
Si itera sobre el hash, entonces verá ': b' establecido incluso si' condition' es falso. –