Quali alternative all'IRB ci sono?
Domanda
Nel mondo pitone, ci sono una serie di interpreti pitone alternativi che aggiungono raffreddare funzionalità aggiuntive. Un esempio particolarmente utile è bpython, che aggiunge evidenziazione della sintassi dinamico, automaticamente tira documentazione, e visualizza informazioni vivo completamento automatico. Nel mondo Ruby, devo ancora scoprire eventuali progetti che si aggiungono alla IRB interprete di base anche un sottoinsieme di queste caratteristiche. Am non solo guardando abbastanza duro, o è solo qualcosa che la comunità di Ruby è carente?
Soluzione
Che coincidenza. Rubyflow proprio ieri ha annunciato il irbtools gemma, che è una meta-gioiello che contiene un sacco di freddo IRB gemme di miglioramento. Esso contiene:
- colorati e di uscita come commento di
wirb
efancy_irb
- Nizza IRB tempestivo e automatico del IRB indentazione
- Include di stdlib fileutils:
ls
,cd
,pwd
,ln_s
,rm
,mkdir
,touch
,cat
- Molti aiutanti di debug:
ap
,q
,o
,c
,y
,Object#m
,Object#d
-
ap
- awesome_print -
q
- comep
, ma su una riga -
Object#m
- ordinato lista metodo (prende intero parametri: livello di nidificazione) -
Object#d
- mette l'oggetto, i rendimenti di sé (usandotap
)
-
- “magico” costanti informazioni:
Info, OS, RubyVersion, RubyEngine
-
OS.windows?
-
RubyEngine.jruby?
-
RubyVersion.is.at_least? 1.9
-
- Appunti caratteristiche:
copy
epaste
- anche disponibili:
copy_input
ecopy_output
per cronologia della sessione
- anche disponibili:
- Chiamata
vim
(o un altro editor supportato) per modificare un file, chiuderlo e viene caricato nella sessione irb corrente, alimentato dainteractive_editor
- Un altro modo di carico dal vivo in IRB: schizzi
- Evidenziare una stringa con
olorize('string')
o un file conray('path')
, alimentato da coderay - Visualizza le voci del database ActiveRecord come le tabelle con
hirb
- Riavvia
irb
conreset!
o cambiare la versione di Ruby con il metodouse
ervm!
- Include la directory corrente nel percorso di carico (è stato rimosso in 1.9.2 per motivi di sicurezza, ma è piuttosto fastidioso in IRB)
- Shorter richiedendo in questo modo:
rq:mathn
- E rerquiring con
rrq
- Prova l'aiutante
Object#ri
incluso, alimentata daori
! - L'accesso a un sacco di altri comandi con
boson
- i comandi di chiamata per iniziare
Ci sono belle le immagini sul href="http://irb.tools/" rel="nofollow noreferrer"> irbtools pagina . Una cosa bella è che ciascuno dei programmi di utilità può stare da sola, nel caso in cui si desidera solo per cherry-pick uno o due caratteristiche.
2013 Aggiornamento
Da quando ho scritto questo, leva è diventato un sostituto IRB popolare. Non fa tanto quanto irbtools
fuori dalla scatola, ma è estendibile con plugin di gemme che aggiungono funzioni interessanti. È possibile sfogliare il codice sorgente come se fosse una directory UNIX:
pry(main)> cd FileUtils
pry(FileUtils):1> show-method rm
From: /opt/ruby/lib/ruby/1.9.1/fileutils.rb @ line 556:
Number of lines: 10
Owner: FileUtils
def rm(list, options = {})
fu_check_options options, OPT_TABLE['rm']
list = fu_list(list)
fu_output_message "rm#{options[:force] ? ' -f' : ''} #{list.join ' '}" if options[:verbose]
return if options[:noop]
list.each do |path|
remove_file path, options[:force]
end
end
pry(FileUtils):2>
È possibile anche sfogliare la documentazione Ruby, comandi problema shell e, se sei un utente Rails, è possibile utilizzare la gemma pry-rails
per ottenere leva nella console Rails. C'è anche un modo per collegare in Sinatra e utilizzarlo con Heroku.
Non c'è ampia documentazione - ci sono un sacco di screencast, tra cui un Railscast. E 'sicuramente merita di essere esaminata.
Altri suggerimenti
Usa leva: http://pry.github.com
Let sei tu:
- avviare sessioni in fase di esecuzione
- il codice sorgente di vista metodo
- metodo di visualizzazione della documentazione (se non utilizzano RI modo da non dovete pre-generarlo)
- pop dentro e fuori di contesti diversi
- l'evidenziazione della sintassi
- integrazione succo
- vista e la storia di replay
- editor aperti a metodo di modifica utilizzando
edit-method obj.my_method
sintassi
Una tonnellata di più grandi e originali caratteristiche
Non ho mai sentito di un (popolare) alternativa al IRB, ma ci sono certamente diverse gemme utili che rendono l'esperienza più bella IRB un sacco:
- awesome_print abbastanza stampa oggetti rubino con indentazione e la colorazione, molto utile quando si cerca di guardare gli hash nidificati o altre strutture di dati complesse.
- looksee è abbastanza impressionante troppo, fornisce un metodo
lp
(percorso di ricerca) che mostra dove un oggetto rubino ottiene i suoi metodi da (classe, superclasse ecc). - Sketches collega il redattore e IRB, quindi è particolarmente utile se siete il tipo che ama sviluppo interattivo. Emacs con
inf-ruby
è anche un bene per questo. - Wirble è tutta una serie di miglioramenti IRB, come il completamento scheda e l'evidenziazione della sintassi. C'è anche Utility Belt , ma io personalmente non uso che, in modo non può commentare le sue caratteristiche.
Modifica
Hirb , che è molto utile per es che mostra i risultati di una query ActiveRecord in una console Rails.
Non c'è http://github.com/alloy/dietrb .
navi JRuby con jirb_swing
, che prevede il completamento del codice.
non c'è molto nella zona di alternative alla IRB, ma ci sono un paio di gemme che aggiungono funzionalità utili per IRB.
In particolare wirble , che, tra le altre cose, consente di eseguire stampe di colore (non però in ingresso) e una storia che va oltre la sessione corrente.
RIPL , un'alternativa IRB modulare che è stato progettato per essere estensibile. Si può anche ottenere alcune risposte da C'è qualcosa di simile bpython per Ruby? .
nervatura è un rubino shell interattiva modulare e leggero.
E ', come leva, usa parser di Ruby ha così un comportamento coerente con Ruby quindi meno bug (ad esempio https://stackoverflow.com/ un / 39271791/474597 )
È modulare così si può estendere facilmente con più funzionalità.
E 'inoltre ancora attivamente mantenuto come dal 2016.
Ho fatto una pura console Ruby, ispirato al largo console JavaScript di Google Chrome.
https://github.com/sancarn/RubyConsole
E 'ancora in gran parte un progetto di WIP come io continuo a trovare i bug con l'algoritmo attuale, tuttavia mi sto costruendo per essere 1.9.3+ compatibili.