使用 ARGV 创建目录 (ruby)
Create directory with ARGV (ruby)
我创建这个程序是为了在程序目录下创建一个文件夹,如果有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)
如何解决这个问题?谢谢。
只需在perform
中添加check_if_user_gave_input
方法
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
我创建这个程序是为了在程序目录下创建一个文件夹,如果有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)
如何解决这个问题?谢谢。
只需在perform
check_if_user_gave_input
方法
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