Создать каталог с помощью ARGV (ruby)

#ruby #string #methods #syntax-error #argv

#ruby #строка #методы #синтаксическая ошибка #argv

Вопрос:

Я создал эту программу для создания папки в каталоге программы, если есть ARGV.

 def check_if_user_gave_input
  abort("mkdir: missing input") if ARGV.empty?
end

def get_folder_name
  return folder_name = ARGV.first
end

def create_folder(name)
  Dir.mkdir(name)
end

def perform
  folder_name = get_folder_name
  create_folder(folder_name)
end

perform
 

Итак, если я запущу эту программу в своем терминале, все будет в порядке. Но, если я попробую это в своем терминале и ничего не напишу после $ ruby app.rb того, как получу приятное сообщение об ошибке, подобное этому, и я не вижу строку "mkdir: missing input"

 Traceback (most recent call last):
    3: from app.rb:18:in `<main>'
    2: from app.rb:15:in `perform'
    1: from app.rb:10:in `create_folder'
app.rb:10:in `mkdir': no implicit conversion of nil into String (TypeError)
 

Как это исправить? Спасибо.

Ответ №1:

Просто добавьте check_if_user_gave_input метод в perform

 def check_if_user_gave_input
  abort("mkdir: missing input") if ARGV.empty?
end

def get_folder_name
  ARGV.first
end

def create_folder(name)
  Dir.mkdir(name)
end

def perform
  check_if_user_gave_input
  folder_name = get_folder_name
  create_folder(folder_name)
end

perform
 

Комментарии:

1. Хорошо, спасибо, это нужно было поместить в начало метода выполнения…