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?

È stato utile?

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 e fancy_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 - come p, ma su una riga
    • Object#m - ordinato lista metodo (prende intero parametri: livello di nidificazione)
    • Object#d - mette l'oggetto, i rendimenti di sé (usando tap)
  • “magico” costanti informazioni: Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • Appunti caratteristiche: copy e paste
    • anche disponibili: copy_input e copy_output per cronologia della sessione
  • Chiamata vim (o un altro editor supportato) per modificare un file, chiuderlo e viene caricato nella sessione irb corrente, alimentato da interactive_editor
  • Un altro modo di carico dal vivo in IRB: schizzi
  • Evidenziare una stringa con olorize('string') o un file con ray('path'), alimentato da coderay
  • Visualizza le voci del database ActiveRecord come le tabelle con hirb
  • Riavvia irb con reset! o cambiare la versione di Ruby con il metodo use e rvm!
  • 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 da ori!
  • 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.

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top