我試圖使用以下代碼在文件中接受作爲終端中的參數,然後它將讀取並更新body
變量及其內容。如果文件沒有被傳入,那麼我想讓用戶輸入他們自己的正文副本的提示。將命令行參數接收到Ruby腳本中
require 'posterous'
Posterous.config = {
'username' => 'name',
'password' => 'pass',
'api_token' => 'token'
}
include Posterous
@site = Site.primary
#GETS POST TITLE
puts "Post title: "
title = STDIN.gets.chomp()
if defined?(ARGV)
filename = ARGV.first
end
if (defined?(filename))
body = File.open(filename)
body = body.read()
else
puts "Post body: "
body = STDIN.gets.chomp()
end
puts body
當我沒有通過的文件中運行該程序我得到這個返回:
Post title:
Hello
posterous.rb:21:in `initialize': can't convert nil into String (TypeError)
from posterous.rb:21:in `open'
from posterous.rb:21:in `'
我是相當新的紅寶石,因此不是最好的吧。我嘗試交換了很多東西,改變了一些東西,但無濟於事。我究竟做錯了什麼?