Pregunta
En el mundo pitón, hay una serie de intérpretes pitón alternativas que añaden funciones adicionales enfriar. Un ejemplo particularmente útil es bpython, que añade resaltado de sintaxis dinámico, tira automáticamente la documentación, y muestra la información en vivo autocompletar. En el mundo de Ruby, todavía tengo que descubrir todos los proyectos que se suman al intérprete IRB básico e incluso un subconjunto de estas características. Simplemente no estoy buscando lo suficiente, o es sólo algo falta la comunidad Ruby?
Solución
Qué casualidad. Rubyflow ayer anunció la irbtools gema, que es un meta-joya que contiene una gran cantidad de joyas de mejora fresco IRB. Contiene:
- tintadas y se emite como comentario de
wirb
yfancy_irb
- Niza IRB rápido y automático del IRB sangría
- Incluye stdlib de FileUtils:
ls
,cd
,pwd
,ln_s
,rm
,mkdir
,touch
,cat
- Muchas ayudantes de depuración:
ap
,q
,o
,c
,y
,Object#m
,Object#d
-
ap
- awesome_print -
q
- comop
, pero en una línea -
Object#m
- ordenado lista de métodos (toma número entero de parámetros: nivel de anidamiento) -
Object#d
- pone el objeto, devoluciones auto (usandotap
)
-
- “mágicas” constantes de información:
Info, OS, RubyVersion, RubyEngine
-
OS.windows?
-
RubyEngine.jruby?
-
RubyVersion.is.at_least? 1.9
-
- Portapapeles características:
copy
ypaste
- También disponible:
copy_input
ycopy_output
de historial de la sesión
- También disponible:
-
vim
de llamadas (u otro editor compatible) para editar un archivo, cerca de ella y que se carga en su sesión de IRB actual, impulsado porinteractive_editor
- Otro modo de carga vivo en IRB: bocetos
- Resaltar una cadena con
olorize('string')
o un archivo conray('path')
, impulsado por coderay - Muestra entradas de la base de ActiveRecord como tablas con
hirb
-
irb
Reiniciar conreset!
o cambiar la versión rubí con el métodouse
yrvm!
- Incluye el directorio actual en la ruta de carga (fue eliminado en 1.9.2 por razones de seguridad, pero es bastante molesto en el IRB)
- Más corto que requiere la siguiente manera:
rq:mathn
- Y rerquiring con
rrq
- Prueba el ayudante
Object#ri
incluido, impulsado porori
! - El acceso a una gran cantidad de más comandos con
boson
- comandos de llamada para comenzar
Hay muy buenas capturas de pantalla en el href="http://irb.tools/" rel="nofollow noreferrer"> irbtools página . Lo bueno de esto es que cada una de las empresas de servicios públicos pueden valerse por sí misma, en caso de que lo que desea es cereza recoger una o dos características.
Actualización 2013
Desde que escribí esto, palanca se ha convertido en un sustituto IRB popular. No hace tanto como irbtools
fuera de la caja, pero es extensible con el plugin gemas que añaden características interesantes. Puede navegar por el código fuente como si fuera un directorio 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>
También puede navegar por la documentación de Ruby, comandos shell cuestión, y si usted es un usuario de rieles, se puede utilizar la gema pry-rails
para conseguir la palanca en la consola de Rails. También hay una manera de conectar en Sinatra y utilizarlo con Heroku.
Hay una amplia documentación - hay un montón de grabaciones de pantalla, incluyendo una Railscast. Es, definitivamente, vale la pena analizar.
Otros consejos
El uso de la palanca: http://pry.github.com
permiten es:
- iniciar sesiones en tiempo de ejecución
- código de la vista fuente método
- documentación del método vista (no usar RI por lo que no tiene que pre-generarlo)
- entrar y salir de diferentes contextos
- resaltado de sintaxis
- Integración GIST
- vista y la historia de repetición
- editores abiertos a editar utilizando el método
edit-method obj.my_method
sintaxis
Una tonelada más grandes y originales características
nunca he oído de un (popular) alternativa a la IRB, pero ciertamente hay varias gemas útiles que hacen que la experiencia más agradable IRB un montón:
- awesome_print bastante imprime objetos rubí con sangría y colorear, muy útil cuando se trata de mirar a los hashes o anidados otras estructuras de datos complejas.
- looksee es bastante increíble, que proporciona un método
lp
(ruta de búsqueda) que muestra que una objeto de ruby ??obtiene sus métodos de (clase, superclase etc). - Sketches conecta su editor e IRB, por lo que es especialmente útil si usted es el tipo que le gusta de desarrollo interactivo. Emacs con
inf-ruby
también es bueno para esto. - Wirble es todo un conjunto de mejoras del IRB, al igual que la implementación del tabulador y resaltado de sintaxis. También hay Cinturón de herramientas de , pero yo no uso personal que, por lo que no puede comentar sobre sus características.
Editar
Hirb , que es muy útil para, por ejemplo muestra los resultados de una consulta de ActiveRecord en una consola de Rails.
barcos JRuby con jirb_swing
, que proporciona la finalización de código.
No hay mucho en el área de alternativas a la IRB, pero hay un par de joyas que añadir funciones útiles para IRB.
Lo más notable es wirble , que, entre otras cosas, permite obtener impresiones de color (no a pesar de la entrada) y una historia que va más allá de la sesión actual.
RIPL , una alternativa IRB modular que está diseñado para ser extensible. También es posible obtener algunas respuestas de ¿Existe algo así como bpython para Ruby? .
costilla es un shell interactivo modular y la luz Ruby.
, como palanca, utiliza analizador de Ruby por lo que tiene un comportamiento coherente con Ruby por lo tanto menos errores (por ejemplo, https://stackoverflow.com/ a / 39271791/474597 )
Es modular lo que uno puede extender fácilmente con más funcionalidades.
es también todavía mantiene activamente como de 2016.
Me hizo una consola de Ruby puro, inspirado fuera de la consola JavaScript de Google Chrome.
https://github.com/sancarn/RubyConsole
Es todavía en su mayoría un proyecto WIP como sigo encontrando errores con el algoritmo actual, sin embargo estoy construyendo que sea compatible 1.9.3+.