class Utils::Editor

def edit(*filenames)

def edit(*filenames)
  if filenames.size == 1 and
    source_location = filenames.first.source_location
  then
    edit_source_location(source_location) ||
      edit_file(expand_globs(source_location[0, 1]))
  else
    filenames =
      expand_globs(filenames.map(&:source_location).map(&:first))
    edit_file(*filenames)
  end
end