RSMangler 2

Si no lo habéis leido, os recomiendo encarecidamente que leáis antes el primer post sobre rsmangler:
https://notfrom.wordpress.com/2012/10/08/rsmangler/

Algunas de las modificaciones que le podemos hacer al rsmangler son:

  • Inactivar las opciones por defecto.
  • Borrar algunas opciones.
  • Añadir opciones.
  • Modificar lo que hacen algunas de las opciones opciones.

Se va a hablar muchos de líneas a las que hay que ir para mirar, modificar o borrar. Se entiende que son las líneas del script original (sin modificar).

¿Cómo cambiar el valor por defecto de activado (“true”) a inactivado (“false”)? ¿Y para qué?

Bueno, hay opciones como “–ing” y “–ed” que añaden esas terminaciones al final de cada palabra. En inglés inglés y en inglés americano podemos coger casi cualquier sustantivo y/o adjetivo y hacerlo, pero en el idioma español no tiene sentido.

Para inactivar una opción tenemos que:

  1. Cambiar el texto de ayuda para decir que la opción está inactivada por defecto. Aunque si nos olvidamos de este paso, tampoco va a pasar nada.
  2. Buscar la opción que queramos cambiar entre las líneas 94-114 y cambiar el valor de “true” a “false”.
  3. Ahora tenemos que modificar lo que ocurre cuando ponemos la opción. Antes se desactivaba, ahora se va a activar. Tenemos que buscar la opción entre las líneas 132-172 y cambiar “false” por “true”. Listo.

¿Y si quiero borrar una opción?

Facilito. Tenemos que:

  • Borrar la opción de la lista de getopt entre las líneas 22-43 (hay que borrar la línea entera).
  • Borrar la opción de las líneas de ayuda (66-88).
  • Borrar el valor asignado por defecto a la opción (total, no la va a necesitar). Líneas 94-114.
  • Borrar el valor que se asigna al poner la opción. Líneas 132-172. Es algo así para cada opción:
when "--opcion"
    opcion = false
  • Sobra decir que hay que borrar las 2 líneas.
  • Y por último, borrar lo que hace la opción. Eso está entre las líneas 220-290 y puede ser de 2 tipos. Algo así:
results << x+x if double
  • O algo así:
if opcion
    ...
end

¿Y si quiero añadir una opción? Hay que hacer lo contrario que al borrarlas, más algo de inventiva.

Por ejemplo, para añadir la opción “triple” que triplica la palabra, hay que:

  • Añadir la entrada de getopts:
[ '--triple', '-3', GetoptLong::NO_ARGUMENT ],
  • Añadir la entrada a ayuda:
--triple, -3: triplicates each word
  • Añadir el valor por defecto:
triple=true
  • Añadir lo que hace cuando se pone la opción:
when "--triple"
    triple = false
  • Y añadir lo que hace, en este caso es muy fácil:
results << x+x+x if triple

¿Modificar opciones? ¿Para que voy a querer hacer eso? Pues para añadir más cosas, por ejemplo a la opción de caracteres especiales (línea 266):

for i in ("!@£$%^&*()".scan(/./))

Quedando así:

for i in ("!¡?¿@#€£$%^&*()[]{}<>-_".scan(/./))

PD:

Esta es la segunda vez que escribo esto. Pues tuve un corte de energía y se me apagó el ordenador (incluido gedit donde lo estaba escribiendo). Y como no lo había guardado nisiquiera una sóla vez, tampoco había guardado una copia temporal (uno de esos archivos tan molestos que acaba con un “~”, de los cuales solo nos damos cuanta en la terminal cuando hacemos un ls).

Y encima los cabrones (de hecho la aplicación) de unix.stackexchange.com, me dice que mi post no cumple con los estandares. ¡MARAVILLOSO!

Teniendo en cuenta que la entrada anterior (me refiero a la que se perdió) me había quedado perfe, pues estaba a punto de colgarla, he intentado reproducirla de memoria lo mejor que he podido, pero aún así, no me ha quedado tan bien (estoy seguro).

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s