Тест (? e, ARGV [0])

Какова тестовая функция в следующем выражении Ruby:

unless ARGV.size == 1 and test(?e, ARGV[0])

Ответ 1

test() похоже, напоминает тесты оболочки, чтобы увидеть, существуют ли файлы или каталоги, читаемы и т.д.:

irb(main):011:0> test(?e,"/etc/passwd")  # e for exist
=> true
irb(main):012:0> test(?e,"/does/not/exist")
=> false
irb(main):014:0> test(?e,"/etc")
=> true
irb(main):015:0> test(?d, "/etc")        # d for directory
=> true
irb(main):016:0> test(?d, "/etc/passwd")
=> false
irb(main):017:0> test(?r, "/etc/passwd") # r for readable
=> true
irb(main):018:0> test(?w, "/etc/passwd") # w for writable
=> false

Подробная информация приведена в документации ri Kernel#test.