Frage

Als ich durch meine Reise werde durch die Sprache Ruby Annahme, verbringe ich viel Zeit im Inneren IRb. Es ist einfach fantastisch! Aber, wie ich bin nicht sehr bewusst, es Fähigkeiten, und immer noch ein „nubby“ Ruby, ich möchte Folgendes wissen:

  • Wie kann ich „flush“ die Sitzung, ohne IRb Neustart (oder ist dies nicht möglich).
  • Wie kann ich konfigurieren IRb eine Reihe von Quelldateien „hello.rb“ zu laden und „hello_objects.rb“, das heißt beim Start? Ich bin stark in dieser Arbeit und es wäre schön, eine kurze Hand zu wissen, diese Klassen zu laden, ohne manuell Typisierung ‚Last‘ für jeden wieder.
War es hilfreich?

Lösung

Ich bin nicht sicher, ist es möglich, zu ‚spülen‘ eine Sitzung. Allerdings können Sie Ihre Klassen wie folgt laden:

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

Andere Tipps

Sie können Sitzungen in irb verwalten. Starten Sie irb und versuchen Sie dies:

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

Es gibt auch den Befehl „fg (Zahl)“, die zwischen den Sitzungen schalten. Siehe: http://tagaholic.me/2009/05/11/demystifying -irb-commands.html

Ich glaube, was Sie suchen ist Ihre ~ / .irbrc-Datei ändern. Es wurde bereits erwähnt, aber keine Beispiele gegeben. Hier ist ein kurzes Beispiel einige gemeinsame Dienstprogramme zu benötigen Sie in Ihrer irb Sitzung wünschen können:

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

können Sie setzen jeden Ruby-Code in Ihre ~ / .irbrc-Datei, die ausgewertet werden erhalten, wenn Sie irb laufen. In diesem Fall benötigen, um Ihre Aussagen.

Diese sind nicht direkte Antworten können aber auf Ihren Wunsch anwenden irb mehr zu verstehen.

Eine Reihe von „rb“ Methoden sind auf die Konsole Objekt zur Verfügung.

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"]

Haben Sie etwas Spaß mit den Spielen um.

Ein weiterer Grund ist die "conf" Objekt, das Feedback über Ihre irb Umgebung gibt:

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>>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top