4Trabes Historias de una empresa en 100 metros cuadrados

El blog de Trabe Soluciones

pry-buffers 1.0.0

|

Ayer, mientras Fuco y yo depurabamos una aplicación utilizando esa pequeña maravilla que es Pry, sentimos la necesidad de evaluar varios fragmentos de código. Para esto, Pry proporciona el comando “edit” que ofrece dos posibilidades: 1) utilizar fichero temporal (la opción -t) , o 2) indicar una ruta donde leer/escribir un fichero. En el primer caso no podemos reutilizar el contenido del fichero por lo que más nos vale no equivocarnos al teclear, y en el segundo nos vemos obligados a indicar dónde guardar los ficheros, lo que es tedioso si sólo pretendemos hacer algo temporal. No pasa nada, pry-buffers al rescate.

Con pry-buffers lo que queremos es juntar lo mejor de 1) y 2), permitiendo manejar buffers persistentes. Veamos cómo es una sesión pry con pry-buffers.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pry(main)> buf
    ...  Aquí un rato con el vim (o con lo que uséis)...
This is de default buffer
pry(main)> buf -l
Available buffers: default
pry(main)> buf -s default
puts "This is the default buffer"
pry(main)> buf test
    ...  Aquí otro rato más con el vim...
This is a test 2
pry(main)> buf -s test
Buffer test contents:
puts "This is a test #{1 + 1}"
pry(main)> buf -l
Available buffers: default, test
pry(main)> buf -d test
Buffer test cleaned

En resumen, podéis usar y gestionar tantos buffers como queráis y estos serán persistentes entre comandos (y entre sesiones Pry).

Para lograrlo hemos uttilizado el mecanismo de extensión de Pry, que permite definir nuevos comandos a través del fichero de configuración de pry ($HOME/.pryrc) o mediante plugins (como pry-doc o pry-remote). Nosotros hemos optado por la segunda opción. Si os apetece probarlo instalad la gema

1
gem install pry-buffers

Y si tenéis curiosidad, el código fuente está en github.

Esta es una gema para uso interno (vamos, para que Fuco sea feliz) pero esperamos que os resulte útil a alguno.

Happy Prying!

Lo sentimos, pero los comentarios están cerrados