Рекомендации для согласованности нескольких ОС при использовании Ruby's Dir.glob - PullRequest
0 голосов
/ 10 сентября 2018

Я недавно заметил во время сеанса отладки, что Dir.glob (он же Dir[]) ведет себя по-разному в зависимости от ОС.В частности, порядок, в котором возвращаются файлы, отличается.

Каковы рекомендуемые способы использования Dir.glob в Ruby, если известно, что код будет использоваться в различных ОС?

Пример разницы: Я клонировал проект DeckSchrubber в Linux и Windows

Windows:

irb(main):003:0> puts Dir['./*']
./CHANGELOG.md
./LICENSE
./main.go
./README.md
./types.go
./util
=> nil

Linux:

irb(main):011:0> puts Dir['./*']
./main.go
./LICENSE
./util
./types.go
./README.md
./CHANGELOG.md
=> nil

Еще раз прошурешения и идиомы, обеспечивающие каноничность вывода.

1 Ответ

0 голосов
/ 10 сентября 2018

Обычно библиотеки FS ведут себя по-разному на Mac и Linux. Я не считаю Windows платформой для Ruby.

Итак, по моему опыту, достаточно было просто добавить условный оператор, который проверяет текущее имя платформы и сортирует результат требуемым образом. Насколько я помню, разница была в порядке возвращаемых файлов.

...