Read the documentation of File::basename :
basename(file_name [, suffix] ) → base_name
Returns the last component of the filename given in file_name, which can be formed using both File::SEPARATOR and File::ALT_SEPARETOR as the separator when File::ALT_SEPARATOR is not nil. If suffix is given and present at the end of file_name, it is removed.
file = "/home/usr/my_file.xml"
File.basename(file,File.extname(file)) # => "my_file"