2010-04-16 2 views
5

루비 언어를 채택하여 여행을 나가기 때문에 IRb에서 많은 시간을 보냅니다. 환상적입니다!IRb : 사전로드 된 클래스로 대화식 루비 세션을 시작하는 방법

  • 어떻게 I "플러시"세션 (IRB를 다시 시작하지 않고 또는이다 : 그러나, 나는 그것을 잘 알고 아닙니다으로 여전히 루비와 '혹'기능을, 그리고, 나는 다음을 알고 싶습니다 이것은 불가능하다).
  • "hello.rb"및 "hello_objects.rb"소스 파일을로드 할 수 있도록 구성하려면 어떻게해야합니까? 나는 이것들에 집중적으로 노력하고 있으며, 각각에 대해 수동으로 '로드'를 입력하지 않고 이러한 클래스를로드하는 짧은 손을 아는 것이 좋을 것입니다.

답변

16

세션을 '플러시 (flush)'할 수 있는지 확실하지 않습니다. 그러나 다음과 같이 클래스를로드 할 수 있습니다.

irb -r 'hello.rb' -r 'hello_objects.rb' 
+0

Nice, thanks a lot! – Shyam

+3

하나의 RB 파일에 모든 요구 사항을 넣은 다음 필요한 것을 요구하면 도움이 될 수 있습니다. – Beanish

6

irb에서 세션을 관리 할 수 ​​있습니다. irb를 시작하고 다음을 시도하십시오 :

x=1 
irb  # Opens a new session 
puts x # error 
jobs # lists sessions 
quit # kills current session 
puts x # 1 

세션간에 전환하는 명령 "fg (number)"도 있습니다. 참조 : http://tagaholic.me/2009/05/11/demystifying-irb-commands.html

2

irb를 실행할 때마다 평가되는 ~/.irbrc 파일에 임의의 루비 코드를 넣을 수 있습니다. 이 경우 귀하의 요구 명세서.

2

이들은 직접적인 답변이 아니지만 irb를 더 이해하려는 욕망에 적용될 수 있습니다.

"irb"메서드는 콘솔 개체에서 사용할 수 있습니다.

methods.grep(/irb/).sort 
=> ["irb", "irb_bindings", "irb_cb", "irb_change_binding", "irb_change_workspace", 
"irb_chws", "irb_context", "irb_current_working_binding", "irb_current_working_workspace", 
"irb_cwb", "irb_cws", "irb_cwws", "irb_exit", "irb_fg", "irb_jobs", "irb_kill", "irb_load", 
"irb_pop_binding", "irb_pop_workspace", "irb_popb", "irb_popws", "irb_print_working_binding", 
"irb_print_working_workspace", "irb_push_binding", "irb_push_workspace", "irb_pushb", 
"irb_pushws", "irb_pwb", "irb_pwws", "irb_quit", "irb_require", "irb_source", "irb_workspaces"] 

재미있게 놀아보세요.

conf 
=> conf.ap_name="irb" 
conf.auto_indent_mode=false 
conf.back_trace_limit=16 
conf.debug_level=1 
conf.echo=true 
conf.ignore_eof=false 
conf.ignore_sigint=true 
conf.inspect_mode=nil 
conf.io=#<IRB::StdioInputMethod:0x79da0> 
conf.irb=#<IRB::Irb:0x7c58c> 
conf.irb_name="irb" 
conf.irb_path="(irb)" 
conf.last_value=... 
conf.line_no=6 
conf.load_modules=[] 
conf.prompt_c="%N(%m):%03n:%i* " 
conf.prompt_i="%N(%m):%03n:%i> " 
conf.prompt_mode=:DEFAULT 
conf.prompt_s="%N(%m):%03n:%i%l " 
conf.rc=true 
conf.return_format="=> %s\n" 
conf.thread=#<Thread:0x31790 run> 
conf.use_readline=false 
conf.verbose=nil 
conf.workspace=#<IRB::WorkSpace:0x7aa84 @main=main, @binding=#<Binding:0x7a2a0>> 
3

나는 당신이 ~/.irbrc 파일을 수정한다 찾고있는 믿을 :

또 다른 당신의 IRB 환경에 대한 피드백을 제공하는 "conf의"개체입니다. 이전에 언급되었지만 주어진 예는 없습니다. 다음은 irb 세션에서 필요할 수있는 몇 가지 공통 유틸리티를 요구하는 간단한 예입니다.

# Print to yaml format with "y" 
require 'yaml' 
# Pretty printing 
require 'pp' 
# Ability to load rubygem modules 
require 'rubygems' 
# Tab completion 
require 'irb/completion'