# Removes the last file extension from a filename or path.
# Removes all extensions from a filename or path.
#
# Examples:
# archive.tar.gz -> archive
# /tmp/archive.tar.gz -> /tmp/archive
def remove_all_extensions(file_path)
dir = File.dirname(file_path)
name = File.basename(file_path).sub(/\..*$/, '')
dir == '.' ? name : File.join(dir, name)
end
# Example usage
puts remove_all_extensions("document.pdf")
puts remove_all_extensions("archive.tar.gz")
puts remove_all_extensions("/tmp/file.txt")
puts remove_all_extensions("/tmp/report.pdf")
puts remove_all_extensions("README")
# run:
#
# document
# archive
# /tmp/file
# /tmp/report
# README
#