Это один из тех случаев, когда может быть более эффективно попросить основную ОС выполнить тяжелую работу, особенно если вы просматриваете много файлов:
%x[ls -rU *.json | tail -10].split("\n")
В Mac OS, которая откроет оболочку, отсортируйте все файлы * .json по дате их создания в обратном порядке, возвращая последние десять. Имена будут возвращены в виде строки, поэтому split
разбит их на массив в конце строки.
Команды ls
и tail
очень быстрые и выполняют свою работу в скомпилированном коде C, избегая циклов, которые мы должны были бы сделать в Ruby для фильтрации вещей.
Недостатком является зависимость от ОС. Windows может получить данные для создания, но команды разные. Linux не хранит дату создания файла.