Pathname - это класс-оболочка для почти любых файловых операций.
require "pathname"
path= Pathname.new("/home/johannes")
path.directory? # => true
path.children # => [#<Pathname:.bash_history>, #<Pathname:Documents>, #<Pathname:Desktop>]
path.children.each do |p|
p.delete if p.file?
end
Pathname#children
не содержит .
или ..
, поэтому вы случайно не идете вверх по дереву, а не вниз.Если вы все еще не доверяете коду, вы можете даже проверить, содержится ли путь в другом
Pathname.new("test") <=> Pathname.new("test/123") # => -1