Domanda

Come sto attraversando il mio viaggio adottando il linguaggio Ruby, ho spendere un sacco di tempo all'interno IRB. E 'semplicemente fantastico! Ma, come io non sono molto consapevole della sua capacità, e ancora una “nubby” con Ruby, vorrei sapere quanto segue:

  • Come posso “a filo” della sessione, senza riavviare IRB (o è questo non è possibile).
  • Come posso configurare IRB per caricare un gruppo di file di origine "hello.rb" e "hello_objects.rb", vale a dire alla partenza? Sto lavorando in questi pesantemente e sarebbe bello sapere una breve mano per caricare queste classi, senza digitare manualmente 'carico' per ogni nuovo.
È stato utile?

Soluzione

Non sono sicuro che sia possibile 'a filo' una sessione. Tuttavia, è possibile caricare le vostre classi in questo modo:

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

Altri suggerimenti

È possibile gestire le sessioni in IRB. Inizia irb e provare questo:

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

C'è anche la "fg (numero)" comando che commuta tra le sessioni. Vedere: http://tagaholic.me/2009/05/11/demystifying -irb-commands.html

Credo che quello che stai cercando è modificare il file ~ / .irbrc. E 'stato menzionato in precedenza, ma nessun esempio dato. Ecco un breve esempio di richiedere alcune utilità comuni che si possono desiderare nella sessione 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'

È possibile inserire qualsiasi codice Ruby nella vostra .irbrc file ~ /, che andranno valutati ogni volta che si esegue IRB. In questo caso il vostro richiedono dichiarazioni.

Queste non sono risposte dirette, ma può applicare al vostro desiderio di capire irb di più.

Un certo numero di metodi "IRB" sono disponibili per l'oggetto 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"]

Avere qualche divertimento giocare con quelli.

Un altro è l'oggetto "conf" che dà un feedback sul vostro ambiente 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>>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top