Esta es una pregunta trivial, no estoy seguro de si realmente debería estar preguntando aquí, pero me gustaría ver si alguien tiene una forma más elegante de escribir esto en Ruby.
Tengo una cadena de versión de formato xyz o xy o x . Me gustaría una forma simple y elegante de convertir esto en una matriz donde se inserta el valor predeterminado 0 si falta un segmento. Tengo algunas formas diferentes de hacer esto, pero esperaba algo un poco más limpio. Atm mi solución actual es esta
version_string.split('.').each_with_index.with_object(['0','0','0']) { |(segment, i), version_array| version_array[i] = segment } Parece funcionar bien, y siempre puedo pasar a una llamada de método simple para hacer que el código se vea limpio, pero algo sobre el uso de each_with_index y `with_object me molesta un poco. Solo curiosidad por ver si el resto de la comunidad de Ruby tiene algo que agregar.
Que tal (min Ruby 2.6)
version_string.split('.').then { |x, y = '0', z = '0'| [x,y,z] }