Каталог списка Ruby с Dir ['*'], включая dotfiles, но нет. а также
Как мне получить Dir['*']
для включения dotfiles, например, .gitignore
, но не .
и ..
?
I.e., есть лучший способ сделать:
`ls -A`.split "\n"
возможно с Dir
? Следующие решения близки, но оба включают .
и ..
:
Dir.glob('*', File::FNM_DOTMATCH)
Dir['{.*,*}']
Итак, следующие работы:
Dir.glob('*', File::FNM_DOTMATCH) - ['.', '..']
Но есть ли еще лучший способ сделать это?
Мне интересно, чтобы это исправить строку 9 Формула Метеор-Homebrew.
Ответы
Ответ 1
Вы не можете с Dir[]
, но вы можете с Dir.glob
, который Dir[]
вызывает:
Dir.glob("*", File::FNM_DOTMATCH)
Вы можете легко избавиться от .
и ..
:
Dir.glob("*", File::FNM_DOTMATCH).tap { |a| a.shift(2) }
Но я думаю, что, вероятно, лучше всего придерживаться вашего первоначального пути:
Dir.glob("*", File::FNM_DOTMATCH) - %w[. ..]
(между прочим)
Ответ 2
Здесь короче версия:
Dir['{.[^\.]*,*}']
Ответ 3
Следующее работает с Dir.glob
:
Dir.glob("{*,.?*}")