私は次のコードを使用して、ターミナルの引数としてファイルを受け取り、読み取ってその内容で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 `'
私は、Rubyことが、むしろ新たなんだので、それを最高ではありませんよ。私は、多くのものを交換して物事を変えようとしましたが、無駄にしました。私は間違って何をしていますか?