Question

Alors que je progresse dans mon parcours en adoptant le langage Ruby, je passe beaucoup de temps dans IRb.C'est juste fantastique !Mais, comme je ne suis pas très conscient de ses capacités, et que je suis toujours un « nubby » avec Ruby, j'aimerais savoir ce qui suit :

  • Comment puis-je « vider » la session sans redémarrer IRb (ou n'est-ce pas possible).
  • Comment puis-je configurer IRb pour charger un tas de fichiers sources "hello.rb" et "hello_objects.rb", c'est-à-direau démarrage ?Je travaille beaucoup sur celles-ci et ce serait bien de connaître un raccourci pour charger ces classes, sans taper manuellement « charger » à nouveau pour chacune.
Était-ce utile?

La solution

Je ne suis pas sûr qu'il est possible de « flush » une session. Cependant, vous pouvez charger vos classes comme ceci:

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

Autres conseils

Vous pouvez gérer les sessions de RIR. Démarrez et essayez ceci irb:

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

Il y a aussi la commande « fg (nombre) » qui commute entre les sessions. Voir: http://tagaholic.me/2009/05/11/demystifying -irb-commands.html

Je crois que ce que vous cherchez est de modifier votre fichier ~ / .irbrc. Il a été mentionné plus haut, mais pas d'exemple donné. Voici un court exemple d'exiger des services courants que vous voudrez peut-être dans votre session 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'

Vous pouvez mettre n'importe quel code Ruby dans votre fichier ~/.irbrc, qui sera évalué chaque fois que vous exécuterez irb.Dans ce cas, vos instructions require.

Ce ne sont pas des réponses directes, mais peuvent demander à votre désir de comprendre plus RIR.

Un certain nombre de méthodes « RIR » sont disponibles à l'objet de la console.

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

Amusez-vous jouer avec ceux-ci.

Une autre est l'objet « ConF » qui donne des commentaires sur votre environnement irb:

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>>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top