Имейте в виду, что этот метод не выполняет особый случай или проверку ошибок и делает огромные предположения о том, что является входным сигналом.
def name_split(string)
split_string = string.split(' ')
if split_string.count > 1
return split_string[0..split_string.count-2].join(" "), split_string.last
else
return split_string.first, nil # nil if there's no last name
end
rescue NoMethodError
return nil, nil
end
fname, lname = name_split("Roger Burns") # => "Roger", "Burns"
fname, lname = name_split("Roger r Burns") # => "Roger r", "Burns"
fname, lname = name_split("Roger") # => "Roger", nil
fname, lname = name_split(nil) # => nil, nil
fname, lname = name_split(3) # => nil, nil