2012-10-18 1 views
0

때로는 irb에서 --noprompt 옵션을 사용하고 있습니다. 특히 코드를 복사하여 다른 곳에 붙여 넣기를 원할 때 유용합니다.irb - autoindent가있는 noprompt 오류가

IRB가 시작될 때 다음과 같은 오류가 발생
IRB.conf[:AUTO_INDENT] = true 

가 :

/Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:280:in `dup': can't dup NilClass (TypeError) 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:280:in `prompt' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:129:in `block in eval_input' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:206:in `call' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:206:in `prompt' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:220:in `initialize_input' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb/ruby-lex.rb:227:in `each_top_level_statement' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:155:in `eval_input' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:70:in `block in start' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:69:in `catch' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/irb.rb:69:in `start' 
from /Users/keithb/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>' 

는 스택 추적이 오류는 JRuby에서에서 발생하지만, .irbrc 파일에 다음 나타납니다이 때 오류가 발생합니다 물론 조금 다릅니다.

이것은 버그입니까? 부적절한 구성 설정은 오류를보다 상위 수준에서보고하여 사용자가 해결 방법을 알 수 있도록 적절히 처리해야한다고 생각합니다. 또는 존재하지 않는 프롬프트에서 들여 쓰기를 지정하는 것이 개발자의 잘못이라고 주장 할 수 있습니까?

- Keith

답변

0

이것은 버그가 아닙니다.

(예 : 당신이 --noprompt을 할 때와 같은) 특별한 경우를 무시한 .irbrc 파일을하고 싶은 경우

다음 당신은 또한 당신의 .irbrc 파일을로드 억제하기 -f 플래그를 제공하고자하는 것입니다.

모순되는 옵션을 제공 할 때 문제가 올바르게 발생합니다.

TLDR;

irb -f --noprompt