module WolfCore::StringUtils

def split_name(full_name, name_range: nil, lastname_range: nil, if_one_word: nil)

def split_name(full_name, name_range: nil, lastname_range: nil, if_one_word: nil)
  if_one_word = {} unless if_one_word.is_a?(Hash)
  if_one_word.merge!(lastname: "-") if if_one_word[:lastname].nil?
  words = full_name.strip.split
  return { first_name: words[0], last_name: if_one_word[:lastname] } if words.length == 1
  return { first_name: words[0], last_name: words[1] } if words.length == 2
  name_range ||= 0..-2
  lastname_range ||= -1..-1
  name = words[name_range].join(" ")
  lastname = words[lastname_range].join(" ")
  { first_name: name, last_name: lastname }
end