다음 코드를 사용하여 터미널에서 인수로 파일을 수락하고이 내용을 읽은 다음 내용으로 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 `'
나는 루비 오히려 새로 온 사람 때문에 그것을 최고의 아닙니다. 나는 많은 것들을 교환하고 일을 바꾸려고 노력했지만 아무 소용이 없다. 내가 도대체 뭘 잘못하고있는 겁니까?