Hoy marca el final de la segunda semana de mi curso inmersivo de ingeniería de software en Flatiron School. El plan de estudios se ha centrado en gran medida en comprender los fundamentos básicos de Ruby, incluida la orientación a objetos, los métodos de clase, las instancias de clase, el trabajo con enumeradores, matrices, hashes y relaciones de objetos.
La mayoría, si no todo el lenguaje ruby que he estado escribiendo está en el entorno de Desarrollo Impulsado por pruebas (TDD). Estoy escribiendo código para pasar las pruebas Rspec que han sido escritas por otra persona o por mí mismo. La realidad que me di cuenta al acercarme al final de la segunda semana, es que la disponibilidad de Rspec y mensajes de error informativos no se puede asumir. Por esa razón, encontré un disfrute más profundo al escribir y pasar mis propias pruebas con Pry como mi compañero.
Esta gema de todas las gemas (sí, se necesita instalar gema, también se pretende hacer un juego de palabras) es una herramienta esencial para depurar, probar y simplemente tener una buena y vieja búsqueda en su código.
Entonces, ¿qué es Pry?
Al igual que IRB (Ruby interactivo), Pry es un tipo de REPL (Lectura, Evaluación, Impresión, Bucle). Es increíble porque en lugar de codificar a través de IRB, puede codificar directamente en su programa y colocar un enlace.busca en cualquier parte del código para evaluar el programa.
Insertar ‘ encuadernación.meterse en su código congelará su programa en el punto de inserción. Cuando el programa golpea la palanca, el programa abrirá un REPL y tendremos la oportunidad de entrometernos en nuestro código y ver qué está pasando debajo del capó.
Para usar, primero instale Pry gem
Ejecute «gem install pry» en la línea de comandos.
Usando Pry
he creado un ejemplo de una clase de Grupo que contiene métodos de clase e instancia.
yo personalmente uso «de unión.pry » en dos casos comunes, por supuesto, hay muchas otras situaciones en las que usarías Pry.
Instancia Uno: Búsqueda del valor de un argumento pasado a un método.
Me pregunto qué es «ocasión» en la línea 19?
puse un «enlace.haga palanca » en la parte inferior para que pueda hacer palanca en este método en particular. Nota » encuadernación.pry » no funciona si lo pongo dentro de mi declaración if/else, por lo que la palanca se ha colocado después de que la declaración de condición haya terminado.
Ahora, cuando invoco el método «música» en mi programa y corro mi archivo en el terminal, se abrirá el REPL de palanca. Ahora puedo probar para ver cuál es el valor de» ocasión «de la línea 19 escribiendo» ocasión » en mi terminal.
Hey, es un «cumpleaños»! Ya sabemos que es un cumpleaños, podemos estar seguros de que una vez ejecutado, este método devolverá «Feliz Cumpleaños a ti, Feliz Cumpleaños a ti». ¡Órale!
Instancia Dos: Búsqueda en métodos enumerables
En el ejemplo siguiente, el método de clase «all_party_types» recopilará todos los tipos de ocasión de fiesta y devolverá un array de todas las ocasiones que se hayan creado en la clase de Fiesta.
Porque palanca es una impresionante herramienta de depuración, nos permite ver los valores de casi cualquier cosa que queramos. Por ejemplo, «Fiesta de lo que hay dentro».all «(línea 31), o» party «(línea 31) o » party.occasion » (línea 32)? ¿Nos da los datos que esperamos?
Si escribimos lo que queremos entrometernos, el REPL imprimirá exactamente lo que es. Véase ,, infra. Tenga en cuenta que «elemento» y «elemento.ocasión» sólo nos muestra una instancia de «Fiesta», pero si le damos a «salir» en la línea de comando y volver a ejecutar los comandos, el REPL imprimirá la siguiente instancia en el bucle y nos muestran el siguiente valor en la matriz.
Consejos de palanca
Debido a que el trabajo en equipo hace el trabajo de ensueño, aquí están mis cuatro consejos principales sobre el uso de Palanca.
- Require luego Llame al método antes de intentar hacer palanca
Necesita » require ‘pry’ «en la parte superior de su archivo y luego llame al método primero antes de «binding».pry » funcionará.
2. Hacer palanca en un bucle («exit»)
Puede usar «exit» para hacer palanca en el valor de retorno del siguiente bucle.
Por ejemplo, si «Fiesta».all «contiene una matriz de 3 instancias de «party», escribiendo» exit » en su línea de comandos se moverá a la siguiente instancia del bucle. Para cada instancia del bucle, puede acceder al valor «party». ¡Magia!
3. Forzar la salida fuera del bucle («!!!»/»exit!»)
Cuando hayas terminado de husmear, puedes golpear»!!!»o» exit!»para salir de la palanca por completo. «salir «sin el»!»también es una opción si no estás curioseando en un método con un bucle.
4. Restablecer pry («código de recarga»)
¿Cuál es el punto de depuración si no puede cambiar su código y realizar pruebas sobre la marcha?
Una vez que haya terminado de actualizar su código, puede escribir «recargar código» en la línea de comandos. Esto restablecerá su sesión de palanca con el nuevo programa sin tener que salir manualmente de la palanca y luego volver a ingresar la palanca después de haber realizado cambios en su programa.
Así que, eso es todo de mí. ¡Feliz depuración!