Вы можете использовать URI-класс Ruby таким образом, чтобы получить фрагмент URI (т.е. относительный путь файла) и разделить его при последнем появлении точки (это также будет работать, если URL содержит часть запроса):
require 'uri'
your_url = 'http://www.example.com/asdf123.gif'
fragment = URI.split(your_url)[5]
extension = fragment.match(/\.([\w+-]+)$/)