6

私はRuby言語を採用して旅をしているので、IRbの中で多くの時間を過ごします。それはただ素晴らしいです!しかし、私はその機能をあまり認識しておらず、Rubyの「ナビー」であるため、次のことを知りたいと思います。

  • IRbを再起動せずにセッションを「フラッシュ」するにはどうすればよいですか(またはこれは不可能です)。
  • 起動時に、大量のソースファイル「hello.rb」と「hello_objects.rb」をロードするようにIRbを構成するにはどうすればよいですか?私はこれらに精力的に取り組んでおり、手動で「load」と入力しなくても、これらのクラスをロードするための簡単な説明を知っておくと便利です。
4

5 に答える 5

17

セッションを「フラッシュ」できるかどうかはわかりません。ただし、次のようにクラスをロードできます。

irb -r 'hello.rb' -r 'hello_objects.rb'
于 2010-04-16T11:40:12.727 に答える
6

irb でセッションを管理できます。irb を起動して、これを試してください:

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

セッションを切り替えるコマンド「fg(数字)」もあります。参照: http://tagaholic.me/2009/05/11/demystifying-irb-commands.html

于 2010-04-16T12:27:44.433 に答える
4

あなたが探しているのは ~/.irbrc ファイルの変更だと思います。前述しましたが、例はありません。以下は、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'
于 2010-07-20T17:12:54.550 に答える
2

irb を実行するたびに評価される ~/.irbrc ファイルに任意の ruby​​ コードを入れることができます。この場合、require ステートメントです。

于 2010-04-17T11:47:53.997 に答える
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"]

それらで遊んで楽しんでください。

もう 1 つは、irb 環境に関するフィードバックを提供する「conf」オブジェクトです。

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>>
于 2010-04-17T11:56:07.630 に答える