AT_EXIT
후크는이를 위해 완벽하게 허용되는 방법입니다. 원숭이 패치가 필요하지 않지만. IRB는 자신의 입력 방법을 만들어이 작업을 수행 할 수있는 기능을 제공합니다.
IRB는 입력을 InputMethod
에서 가져옵니다. 기록은 하위 클래스 인 ReadlineInputMethod
에 의해 제공됩니다.
InputMethod
은 Context
에 첨부되어있다. irb
세션에 conf
을 입력하면 현재 컨텍스트에 액세스 할 수 있습니다.
irb
은 현재 컨텍스트의 io
에 따라 입력을 읽습니다. 예 :
용도 my Bash-like history control class (자세한 내용은 아래 참조). InputMethod
인터페이스에 부합 아무것도
당신은 설정할 수 있습니다 conf.io
: MyInputMethod#gets
반환 IRB에 의해 평가 될 것입니다 무엇이든
conf.io = MyInputMethod.new
. 일반적으로 stdin
에서 읽습니다.
당신이
:SCRIPT
설정 옵션을 설정할 수 있습니다 시작할 때 당신의
InputMethod
를 사용하는 IRB에게 :
# .irbrc
IRB.conf[:SCRIPT] = MyInputMethod.new
IRB는 입력 방법 creating a Context
로 :SCRIPT
의 값을 사용합니다. 이 파일을 입력 메소드로 사용하기 위해 파일로 설정할 수 있습니다. 기본적으로 nil
이며 stdin
이 사용됩니다 (가능한 경우 Readline
경유).
는 중복
ReadlineInputMethod#gets
을 무시 무시 입력 방법 만들려면 :
class MyInputMethod < IRB::ReadlineInputMethod
def gets
line = super # super adds line to HISTORY
HISTORY.pop if HISTORY[-1] == HISTORY[-2]
line
end
end
이 my .irbrc
에 정의 InputMethod
한 당신 같은 IRB_HISTCONTROL
또는 IRB_HISTIGNORE
을 설정할 수 있습니다을 것 배시 (다소) :
IRB_HISTIGNORE=ignoreboth IRB_HISTCONTROL='\Aq!:foo' irb
다음 작업을 수행합니다.