arr = [*arr.to_a + [*new_values.to_a]]
Начните с:
arr ||= []
И затем, в зависимости от того, является ли new_values
массивом или нет
arr += new_values # if array
arr << new_values # if not
arr += [*new_values] # if it could be either
Кроме того, вы можете избавиться от теста на new_values
, воспользовавшись тем, что NilClass
реализует метод .to_a => []
и сократив все до:
arry ||= []
arr += [*new_values.to_a]
Но подождите, мы можем использовать этообмануть снова и превратить все это в однострочник:
arr = [*arr.to_a + [*new_values.to_a]]