grmenu 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/GRmenu.rb +1570 -319
- data/README.md +425 -264
- data/data/help.txt +304 -0
- metadata +7 -3
data/data/help.txt
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
{bright_cyan}╔═══════════════════════════════════════════════════════════════════════════════════╗{reset}
|
|
2
|
+
{bright_cyan}║{bright_magenta} ██████╗ ██████╗ ███╗ ███╗ ███████╗ ███╗ ██╗ ██╗ ██╗ {bright_cyan}║{reset}
|
|
3
|
+
{bright_cyan}║{bright_magenta} ██╔════╝ ██╔══██╗ ████╗ ████║ ██╔════╝ ████╗ ██║ ██║ ██║ {bright_cyan}║{reset}
|
|
4
|
+
{bright_cyan}║{bright_magenta} ██║ ███╗ ██████╔╝ ██╔████╔██║ █████╗ ██╔██╗ ██║ ██║ ██║ {bright_cyan}║{reset}
|
|
5
|
+
{bright_cyan}║{bright_magenta} ██║ ██║ ██╔══██╗ ██║╚██╔╝██║ ██╔══╝ ██║╚██╗██║ ██║ ██║ {bright_cyan}║{reset}
|
|
6
|
+
{bright_cyan}║{bright_magenta} ╚██████╔╝ ██║ ██║ ██║ ╚═╝ ██║ ███████╗ ██║ ╚████║ ╚█████╔╝ {bright_cyan}║{reset}
|
|
7
|
+
{bright_cyan}║{bright_magenta} ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═══╝ ╚════╝ {bright_cyan}║{reset}
|
|
8
|
+
{bright_cyan}╚═══════════════════════════════════════════════════════════════════════════════════╝{reset}
|
|
9
|
+
|
|
10
|
+
{bright_cyan}╔═══════════════════════════════════════════════════════════════════════════════════╗{reset}
|
|
11
|
+
{bright_cyan}║{bright_yellow} DOCUMENTACION Y GUIA COMPLETA DE PARAMETROS (v2.0) {bright_cyan}║{reset}
|
|
12
|
+
{bright_cyan}║{gray} Referencia exhaustiva de clases, metodos publicos, colores y configuracion {bright_cyan}║{reset}
|
|
13
|
+
{bright_cyan}╚═══════════════════════════════════════════════════════════════════════════════════╝{reset}
|
|
14
|
+
|
|
15
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
16
|
+
{bright_yellow}[1] CLASE PRINCIPAL: GRmenu.new(functions, **opciones){reset}
|
|
17
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
18
|
+
Crea una nueva instancia de menu interactivo para la terminal.
|
|
19
|
+
|
|
20
|
+
{cyan}PARAMETROS DEL CONSTRUCTOR:{reset}
|
|
21
|
+
{bright_green}* functions:{reset} {white}[Array]{reset} -> Lista de opciones (ver formatos en seccion [2]).
|
|
22
|
+
{bright_green}* title:{reset} {white}[String]{reset} -> Titulo centrado en el recuadro del menu.
|
|
23
|
+
{bright_green}* banner:{reset} {white}[String]{reset} -> Texto convertido a arte ASCII 3D superior.
|
|
24
|
+
{bright_green}* subtitle:{reset} {white}[String]{reset} -> Descripcion/subtitulo (admite saltos con \n).
|
|
25
|
+
{bright_green}* search:{reset} {white}[Boolean]{reset} -> Buscador en vivo instantaneo (default: false).
|
|
26
|
+
{bright_green}* columns:{reset} {white}[Integer]{reset} -> Cantidad de columnas para grid 2D (default: 1).
|
|
27
|
+
{bright_green}* page_size:{reset} {white}[Integer]{reset} -> Filas visibles antes de scroll (default: auto).
|
|
28
|
+
{bright_green}* style:{reset} {white}[Integer]{reset} -> Estilo de marco de opciones 1..20 (default: 19).
|
|
29
|
+
{bright_green}* banner_style:{reset} {white}[Integer]{reset} -> Estilo de marco para banner 1..20 (default: 3).
|
|
30
|
+
{bright_green}* font:{reset} {white}[Integer]{reset} -> Fuente ASCII del banner 1..10 (default: 1).
|
|
31
|
+
{bright_green}* image:{reset} {white}[String]{reset} -> Ruta a imagen (PNG/JPG/WEBP/GIF/BMP) de cabecera.
|
|
32
|
+
{bright_green}* image_width:{reset} {white}[Integer]{reset} -> Ancho en columnas de la imagen (default: 40).
|
|
33
|
+
{bright_green}* divider:{reset} {white}[Boolean/Int]{reset} -> Lineas divisorias o ancho numerico.
|
|
34
|
+
{bright_green}* center:{reset} {white}[Boolean]{reset} -> Centrado horizontal en consola (default: true).
|
|
35
|
+
|
|
36
|
+
{cyan}METODOS DE INSTANCIA:{reset}
|
|
37
|
+
{bright_white}* menu.draw(size_max: 40, min_width: nil){reset}
|
|
38
|
+
Inicia el bucle interactivo. Bloquea hasta que el usuario seleccione.
|
|
39
|
+
- {cyan}size_max:{reset} Ancho minimo visual garantizado en columnas.
|
|
40
|
+
- Retorna el valor devuelto por la accion ejecutada.
|
|
41
|
+
|
|
42
|
+
{bright_white}* menu.set_style{reset}
|
|
43
|
+
Objeto de personalizacion individual (ver seccion [3]).
|
|
44
|
+
|
|
45
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
46
|
+
{bright_yellow}[2] FORMATOS DE OPCIONES EN EL ARRAY functions{reset}
|
|
47
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
48
|
+
Puedes mezclar cualquiera de estos formatos en la lista de opciones:
|
|
49
|
+
|
|
50
|
+
{cyan}1. Method de Ruby:{reset}
|
|
51
|
+
{bright_white}method(:iniciar_servidor){reset}
|
|
52
|
+
-> Extrae el nombre, limpia guiones y capitaliza automaticamente.
|
|
53
|
+
|
|
54
|
+
{cyan}2. Symbol (Metodo global / Kernel):{reset}
|
|
55
|
+
{bright_white}:crear_respaldo{reset}
|
|
56
|
+
-> Invoca el metodo con ese nombre en el contexto actual.
|
|
57
|
+
|
|
58
|
+
{cyan}3. Arreglo [Nombre, Accion]:{reset}
|
|
59
|
+
{bright_white}["Iniciar Servidor Web", method(:iniciar_servidor)]{reset}
|
|
60
|
+
-> Muestra la etiqueta personalizada y ejecuta la accion con Enter.
|
|
61
|
+
|
|
62
|
+
{cyan}4. Arreglo con Tooltip Dinamico [Nombre, Accion, Descripcion]:{reset}
|
|
63
|
+
{bright_white}["Crear Respaldo", :respaldo, "Copia de seguridad en S3"]{reset}
|
|
64
|
+
-> Muestra la descripcion abajo del recuadro cuando esta enfocado.
|
|
65
|
+
|
|
66
|
+
{cyan}5. Lambda o Proc:{reset}
|
|
67
|
+
{bright_white}["Limpiar Cache", -> { puts "Cache limpia!"; GRmenu.continue }]{reset}
|
|
68
|
+
{bright_white}["Test", -> { puts "OK" }, "Descripcion tooltip opcional"]{reset}
|
|
69
|
+
|
|
70
|
+
{cyan}6. Hash explicito:{reset}
|
|
71
|
+
{bright_white}{ name: "Configurar", action: method(:config), desc: "Ajustes" }{reset}
|
|
72
|
+
|
|
73
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
74
|
+
{bright_yellow}[3] PERSONALIZACION DE COLORES Y MODO RGB ANIMADO: menu.set_style{reset}
|
|
75
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
76
|
+
Personaliza colores y brillo de cada elemento estatico o animado.
|
|
77
|
+
Acepta: {cyan}(color_name, brightness_level){reset}, {cyan}Hash { color:, level: }{reset},
|
|
78
|
+
o el modo dinamico {bright_yellow}"rgb"{reset} / {bright_yellow}"rainbow"{reset} para animacion fluida a 30 FPS.
|
|
79
|
+
|
|
80
|
+
{bright_green}* menu.set_style.font(id){reset}
|
|
81
|
+
- {cyan}id:{reset} [Integer 1..10] -> Fuente 3D del banner.
|
|
82
|
+
{bright_green}* menu.set_style.banner(color, level = 2){reset}
|
|
83
|
+
- Color de las letras 3D (soporta "rgb" para ola arcoiris Chroma).
|
|
84
|
+
{bright_green}* menu.set_style.title(color, level = 2){reset}
|
|
85
|
+
- Color del titulo de cabecera del menu (soporta "rgb").
|
|
86
|
+
{bright_green}* menu.set_style.subtitle(color, level = 2){reset}
|
|
87
|
+
- Color del texto del subtitulo / descripcion (soporta "rgb").
|
|
88
|
+
{bright_green}* menu.set_style.divider(color, level = 1){reset}
|
|
89
|
+
- Color de las lineas divisorias horizontales (soporta "rgb").
|
|
90
|
+
{bright_green}* menu.set_style.border(color, level = 1){reset}
|
|
91
|
+
- Color del marco y esquinas de la caja de opciones (soporta "rgb").
|
|
92
|
+
{bright_green}* menu.set_style.options(color, level = 1){reset}
|
|
93
|
+
- Color de las opciones inactivas / no seleccionadas (soporta "rgb").
|
|
94
|
+
{bright_green}* menu.set_style.focus(color, level = 2){reset}
|
|
95
|
+
- Color de la opcion seleccionada (> Opcion) (soporta "rgb").
|
|
96
|
+
|
|
97
|
+
{cyan}Efecto RGB Animado en tiempo real:{reset}
|
|
98
|
+
{bright_white}menu.set_style.banner("rgb"){reset} # Flujo continuo de colores a 30 FPS
|
|
99
|
+
{bright_white}menu.set_style.border("rgb"){reset} # Marco multicolor animado sin lag
|
|
100
|
+
|
|
101
|
+
{cyan}Configuracion Global por defecto:{reset}
|
|
102
|
+
{bright_white}GRmenu::SetStyle.border("cyan", 1){reset}
|
|
103
|
+
{bright_white}GRmenu::SetStyle.focus("green", 2){reset}
|
|
104
|
+
{bright_white}GRmenu::SetStyle.title("yellow", 2){reset}
|
|
105
|
+
|
|
106
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
107
|
+
{bright_yellow}[4] MODALES, CHECKBOXES Y CONTROLES INTERACTIVOS{reset}
|
|
108
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
109
|
+
|
|
110
|
+
{bright_green}* GRmenu.checkbox(items, title: "...", color: "cyan", style: 3){reset}
|
|
111
|
+
(Alias: {bright_white}GRmenu.select_multi{reset}, {bright_white}GRmenu.multiselect{reset})
|
|
112
|
+
Lista interactiva con casillas de verificacion [X] / [ ].
|
|
113
|
+
- {cyan}items:{reset} [Array] Elementos (Strings o [Nombre, checked, desc]).
|
|
114
|
+
- {cyan}title:{reset} [String] Titulo de cabecera del cuadro.
|
|
115
|
+
- {cyan}color:{reset} [String] Color del recuadro (soporta "rgb").
|
|
116
|
+
- {cyan}style:{reset} [Integer 1..20] Estilo de marco (default: 3).
|
|
117
|
+
- {cyan}page_size:{reset} [Integer] Limite de filas visibles con auto-scroll.
|
|
118
|
+
- {cyan}preselected:{reset} [Array] Indices o nombres marcados por defecto.
|
|
119
|
+
- {cyan}Teclas:{reset} {yellow}Espacio{reset} (marcar), {yellow}a{reset} (todos), {yellow}n{reset} (ninguno), {yellow}i{reset} (invertir), {yellow}Enter{reset}.
|
|
120
|
+
- {cyan}Retorna:{reset} {bright_yellow}Array{reset} con los elementos seleccionados por el usuario.
|
|
121
|
+
|
|
122
|
+
{bright_green}* GRmenu.slider(prompt, min: 0, max: 100, step: 1, default: 50, unit: ""){reset}
|
|
123
|
+
(Alias: {bright_white}GRmenu.range{reset})
|
|
124
|
+
Control deslizante horizontal en tiempo real con barra de nivel.
|
|
125
|
+
- {cyan}prompt:{reset} [String] Mensaje descriptivo.
|
|
126
|
+
- {cyan}min/max:{reset} [Numeric] Limites inferior y superior.
|
|
127
|
+
- {cyan}step:{reset} [Numeric] Incremento por paso (default: 1).
|
|
128
|
+
- {cyan}unit:{reset} [String] Unidad de medida (ej: "GB", "%", "px").
|
|
129
|
+
- {cyan}color:{reset} [String] Color del marco y barra (soporta "rgb").
|
|
130
|
+
- {cyan}style:{reset} [Integer 1..20] Estilo de marco (default: 3).
|
|
131
|
+
- {cyan}Teclas:{reset} {yellow}← / →{reset} (paso), {yellow}↑ / ↓{reset} (paso x5), {yellow}Enter{reset} (guardar).
|
|
132
|
+
- {cyan}Retorna:{reset} {bright_yellow}Numeric{reset} con el valor exacto seleccionado.
|
|
133
|
+
|
|
134
|
+
{bright_green}* GRmenu.confirm(pregunta, default: true, color: "cyan", style: 3){reset}
|
|
135
|
+
Modal interactivo con botones [ Si ] y [ No ].
|
|
136
|
+
- {cyan}pregunta:{reset} [String] Mensaje o pregunta a confirmar.
|
|
137
|
+
- {cyan}default:{reset} [Boolean] Boton inicial (true = Si, false = No).
|
|
138
|
+
- {cyan}color:{reset} [String] Color del recuadro (default: "cyan", soporta "rgb").
|
|
139
|
+
- {cyan}style:{reset} [Integer 1..20] Estilo de borde (default: 3).
|
|
140
|
+
- {cyan}Teclas:{reset} {yellow}← / → / Tab{reset}, {yellow}s / y{reset} (Si), {yellow}n{reset} (No), {yellow}Enter{reset}.
|
|
141
|
+
- {cyan}Retorna:{reset} {bright_yellow}true{reset} si confirma Si, {bright_yellow}false{reset} si elige No o cancela.
|
|
142
|
+
|
|
143
|
+
{bright_green}* GRmenu.input(prompt, default: "", password: false, color: "cyan", style: 3){reset}
|
|
144
|
+
Cuadro de entrada de texto interactivo con cursor en vivo.
|
|
145
|
+
- {cyan}prompt:{reset} [String] Pregunta o instruccion.
|
|
146
|
+
- {cyan}default:{reset} [String] Texto inicial precargado.
|
|
147
|
+
- {cyan}password:{reset} [Boolean] Ocultar texto con asteriscos (****).
|
|
148
|
+
- {cyan}color:{reset} [String] Color del recuadro (soporta "rgb").
|
|
149
|
+
- {cyan}style:{reset} [Integer 1..20] Estilo de borde (default: 3).
|
|
150
|
+
- {cyan}Teclas:{reset} Escribir texto, {yellow}Backspace{reset}, {yellow}Ctrl+U{reset}, {yellow}Enter{reset}.
|
|
151
|
+
- {cyan}Retorna:{reset} {bright_yellow}String{reset} ingresado por el usuario.
|
|
152
|
+
|
|
153
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
154
|
+
{bright_yellow}[5] BARRA DE PROGRESO, SPINNER E IMAGENES ANSI TRUECOLOR{reset}
|
|
155
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
156
|
+
|
|
157
|
+
{bright_green}* GRmenu.progress(total = 100, title: nil, color: "cyan", style: 3, &bloque){reset}
|
|
158
|
+
Barra de progreso fluida dentro de marco decorado (soporta color: "rgb").
|
|
159
|
+
- {cyan}total:{reset} [Integer] Cantidad total de pasos (default: 100).
|
|
160
|
+
- {cyan}title:{reset} [String, opcional] Titulo superior.
|
|
161
|
+
- {cyan}color:{reset} [String] Color de la barra ("cyan", "green", "rgb", etc.).
|
|
162
|
+
- {cyan}level:{reset} [Integer 1 o 2] Nivel de brillo.
|
|
163
|
+
- {cyan}style:{reset} [Integer 1..20] Estilo de marco (default: 3).
|
|
164
|
+
- {cyan}width:{reset} [Integer, opcional] Ancho exacto en columnas.
|
|
165
|
+
- {cyan}Metodos del objeto bar en el bloque:{reset}
|
|
166
|
+
* {bright_white}bar.advance(n = 1, status: "Texto"){reset} -> Avanza n unidades.
|
|
167
|
+
* {bright_white}bar.set(valor, status: "Texto"){reset} -> Fija el progreso exacto.
|
|
168
|
+
* {bright_white}bar.finish(status: "Listo!"){reset} -> Lleva al 100% y cierra.
|
|
169
|
+
* {bright_white}bar.current{reset} -> Progreso actual.
|
|
170
|
+
* {bright_white}bar.total{reset} -> Total maximo.
|
|
171
|
+
|
|
172
|
+
{bright_green}* GRmenu.spinner(mensaje = "Cargando...", color: "cyan", delay: 0.08, &bloque){reset}
|
|
173
|
+
Indicador giratorio animado mientras se ejecuta el bloque (soporta color: "rgb").
|
|
174
|
+
- {cyan}mensaje:{reset} [String] Descripcion de la tarea en curso.
|
|
175
|
+
- {cyan}color:{reset} [String] Color del spinner (soporta "rgb").
|
|
176
|
+
- {cyan}level:{reset} [Integer 1 o 2] Brillo.
|
|
177
|
+
- {cyan}delay:{reset} [Float] Segundos por fotograma (default: 0.08).
|
|
178
|
+
- {cyan}Retorna:{reset} El valor retornado por el bloque { &bloque }.
|
|
179
|
+
- {cyan}Manejo de errores:{reset} Muestra [OK] en verde o [ERROR] en rojo.
|
|
180
|
+
|
|
181
|
+
{bright_green}* GRmenu.image(filepath, width: 40, height: nil, style: 3, color: "cyan"){reset}
|
|
182
|
+
Decodifica y renderiza imagenes (PNG, JPEG, WEBP, GIF, BMP) con micro-pixeles
|
|
183
|
+
ANSI TrueColor de 24 bits y escala proporcional exacta con cache instantanea.
|
|
184
|
+
- {cyan}filepath:{reset} [String] Ruta al archivo de imagen.
|
|
185
|
+
- {cyan}width:{reset} [Integer] Ancho en columnas de la terminal (default: 40).
|
|
186
|
+
- {cyan}height:{reset} [Integer, opcional] Alto en filas (nil = auto proporciones).
|
|
187
|
+
- {cyan}style:{reset} [Integer 1..20] Estilo de marco exterior (nil/0 = sin marco).
|
|
188
|
+
- {cyan}color:{reset} [String] Color del marco exterior (soporta "rgb").
|
|
189
|
+
- {cyan}center:{reset} [Boolean] Centrado horizontal (default: true).
|
|
190
|
+
|
|
191
|
+
{bright_green}* GRmenu.banner(texto, delay = 0, color: "magenta", level: 2, style: 3, font: 1){reset}
|
|
192
|
+
(Aliases: {bright_white}GRmenu.logo{reset}, {bright_white}GRmenu.message{reset})
|
|
193
|
+
- {cyan}texto:{reset} [String] Frase a convertir en arte ASCII 3D.
|
|
194
|
+
- {cyan}delay:{reset} [Float] Pausa entre lineas para animacion (0 = instantaneo).
|
|
195
|
+
- {cyan}color:{reset} [String] Color del banner (soporta "rgb").
|
|
196
|
+
- {cyan}level:{reset} [Integer 1 o 2] Brillo.
|
|
197
|
+
- {cyan}style:{reset} [Integer 1..20] Estilo de marco.
|
|
198
|
+
- {cyan}font:{reset} [Integer 1..10] Fuente tipografica.
|
|
199
|
+
|
|
200
|
+
{bright_green}* GRmenu.div(long = nil, color = "blue", level = 1, char = "─"){reset}
|
|
201
|
+
- {cyan}long:{reset} [Integer, opcional] Longitud de la linea (nil = terminal).
|
|
202
|
+
- {cyan}color:{reset} [String] Color de la linea divisoria (soporta "rgb").
|
|
203
|
+
- {cyan}level:{reset} [Integer 1 o 2] Brillo.
|
|
204
|
+
- {cyan}char:{reset} [String] Caracter repetido ("─", "═", "-", "*", "~", etc.).
|
|
205
|
+
|
|
206
|
+
{bright_green}* GRmenu.clear_screen{reset} (alias: {bright_green}GRmenu.clr{reset})
|
|
207
|
+
Limpia la pantalla y scrollback con secuencias ANSI de alta velocidad.
|
|
208
|
+
|
|
209
|
+
{bright_green}* GRmenu.continue(texto = "Presiona cualquier tecla para continuar..."){reset}
|
|
210
|
+
Pausa la ejecucion y espera una sola pulsacion en modo TTY crudo.
|
|
211
|
+
|
|
212
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
213
|
+
{bright_yellow}[6] MODULO DE COLORES: Color / C{reset}
|
|
214
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
215
|
+
Modulo ligero sin dependencias para pintar texto con colores ANSI y TrueColor RGB.
|
|
216
|
+
|
|
217
|
+
{cyan}Metodos por color (Nivel 1 Normal / Nivel 2 Bright):{reset}
|
|
218
|
+
- {red}Color.red(str){reset} | {bright_red}Color.bright_red(str){reset} | {red}Color.dark_red(str){reset}
|
|
219
|
+
- {green}Color.green(str){reset} | {bright_green}Color.bright_green(str){reset} | {green}Color.dark_green(str){reset}
|
|
220
|
+
- {yellow}Color.yellow(str){reset} | {bright_yellow}Color.bright_yellow(str){reset}
|
|
221
|
+
- {blue}Color.blue(str){reset} | {bright_blue}Color.bright_blue(str){reset}
|
|
222
|
+
- {magenta}Color.magenta(str){reset} | {bright_magenta}Color.bright_magenta(str){reset}
|
|
223
|
+
- {purple}Color.purple(str){reset} | {bright_purple}Color.bright_purple(str){reset}
|
|
224
|
+
- {pink}Color.pink(str){reset} | {bright_pink}Color.bright_pink(str){reset}
|
|
225
|
+
- {cyan}Color.cyan(str){reset} | {bright_cyan}Color.bright_cyan(str){reset}
|
|
226
|
+
- {aqua}Color.aqua(str){reset} | {bright_aqua}Color.bright_aqua(str){reset}
|
|
227
|
+
- {orange}Color.orange(str){reset} | {bright_orange}Color.bright_orange(str){reset}
|
|
228
|
+
- {white}Color.white(str){reset} | {bright_white}Color.bright_white(str){reset}
|
|
229
|
+
- {gray}Color.gray(str){reset} | {bright_gray}Color.bright_gray(str){reset} (alias: Color.grey)
|
|
230
|
+
- Color.black(str)
|
|
231
|
+
|
|
232
|
+
{cyan}Modo Arcoiris RGB Dinamico:{reset}
|
|
233
|
+
- {bright_white}Color.rgb("Texto en Chroma Rainbow"){reset} -> Degrada cada letra en onda RGB.
|
|
234
|
+
- {bright_white}Color.paint("Mi Texto", "rgb"){reset} -> Alias dinamico del modo arcoiris.
|
|
235
|
+
|
|
236
|
+
{cyan}Metodo dinamico universal:{reset}
|
|
237
|
+
{bright_white}Color.paint("Mi Texto", :cyan, 2){reset} -> Texto cian nivel 2 (brillante).
|
|
238
|
+
|
|
239
|
+
{cyan}Atajos rapidos de 1 o 2 letras:{reset}
|
|
240
|
+
{bright_white}Color.r(s){reset} (red), {bright_white}Color.g(s){reset} (green), {bright_white}Color.y(s){reset} (yellow), {bright_white}Color.bl(s){reset} (blue),
|
|
241
|
+
{bright_white}Color.mg(s){reset} (magenta), {bright_white}Color.cy(s){reset} (cyan), {bright_white}Color.w(s){reset} (white), {bright_white}Color.gr(s){reset} (gray).
|
|
242
|
+
|
|
243
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
244
|
+
{bright_yellow}[7] FUENTES ASCII 3D PARA BANNERS (font: 1 al 10){reset}
|
|
245
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
246
|
+
{yellow} 1{reset} -> {bright_white}ANSI Shadow 3D (Default){reset} {cyan}[██████╗ ██╗ ██╗]{reset}
|
|
247
|
+
{yellow} 2{reset} -> {bright_white}Slant 3D (FIGlet){reset} {cyan}[ ____ __ __]{reset}
|
|
248
|
+
{yellow} 3{reset} -> {bright_white}Doom / Standard 3D{reset} {cyan}[ ____ _ _]{reset}
|
|
249
|
+
{yellow} 4{reset} -> {bright_white}Graffiti Shadow 3D{reset} {cyan}[ ,---. ,--. ,--.]{reset}
|
|
250
|
+
{yellow} 5{reset} -> {bright_white}Small Slant / Mini 3D{reset} {cyan}[ ___ _ _]{reset}
|
|
251
|
+
{yellow} 6{reset} -> {bright_white}Modular Pipe 3D{reset} {cyan}[ _____ _____]{reset}
|
|
252
|
+
{yellow} 7{reset} -> {bright_white}Bubble / Round Gothic{reset} {cyan}[ ____ _ _]{reset}
|
|
253
|
+
{yellow} 8{reset} -> {bright_white}Double-Line Wire 3D{reset} {cyan}[ ╔═════╗ ║ ║]{reset}
|
|
254
|
+
{yellow} 9{reset} -> {bright_white}Solid Fat 3D Block{reset} {cyan}[ ██████▄ ██ ██]{reset}
|
|
255
|
+
{yellow}10{reset} -> {bright_white}Arcade Stars Matrix{reset} {cyan}[ ★★★★ ★ ★]{reset}
|
|
256
|
+
|
|
257
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
258
|
+
{bright_yellow}[8] ESTILOS DE MARCO Y BORDES (style: 1 al 20){reset}
|
|
259
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
260
|
+
{yellow} 1{reset} -> {cyan}#####{reset} (Almohadilla / Hash) {yellow}11{reset} -> {cyan}░░░░░{reset} (Sombreado suave)
|
|
261
|
+
{yellow} 2{reset} -> {cyan}┌───┐{reset} (Linea simple fina) {yellow}12{reset} -> {cyan}█████{reset} (Bloque solido)
|
|
262
|
+
{yellow} 3{reset} -> {cyan}╔═══╗{reset} (Doble linea - Default) {yellow}13{reset} -> {cyan}*****{reset} (Asteriscos)
|
|
263
|
+
{yellow} 4{reset} -> {cyan}┏━━━┓{reset} (Linea gruesa / Bold) {yellow}14{reset} -> {cyan}+++++{reset} (Cruces)
|
|
264
|
+
{yellow} 5{reset} -> {cyan}╒═══╕{reset} (Doble horiz. simple vert.) {yellow}15{reset} -> {cyan}====={reset} (Iguales)
|
|
265
|
+
{yellow} 6{reset} -> {cyan}╓───╖{reset} (Simple horiz. doble vert.) {yellow}16{reset} -> {cyan}~~~~~{reset} (Ondulado)
|
|
266
|
+
{yellow} 7{reset} -> {cyan}╭───╮{reset} (Curvas redondeadas) {yellow}17{reset} -> {cyan}-----{reset} (Guiones)
|
|
267
|
+
{yellow} 8{reset} -> {cyan}▛▀▀▀▜{reset} (Bloques outline) {yellow}18{reset} -> {cyan}◆◆◆◆◆{reset} (Rombos / Diamantes)
|
|
268
|
+
{yellow} 9{reset} -> {cyan}▓▓▓▓▓{reset} (Sombreado oscuro) {yellow}19{reset} -> {cyan}●○○○●{reset} (Circulos - Default Op.)
|
|
269
|
+
{yellow}10{reset} -> {cyan}▒▒▒▒▒{reset} (Sombreado medio) {yellow}20{reset} -> {cyan}★☆☆☆★{reset} (Estrellas decoradas)
|
|
270
|
+
|
|
271
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
272
|
+
{bright_yellow}[9] NAVEGACION POR TECLADO EN LOS MENUS{reset}
|
|
273
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
274
|
+
* {bright_yellow}↑ (Arriba):{reset} Mueve el foco arriba. En el tope, salta al fondo (Snake).
|
|
275
|
+
* {bright_yellow}↓ (Abajo):{reset} Mueve el foco abajo. En el fondo, salta al tope (Snake).
|
|
276
|
+
* {bright_yellow}← (Izquierda):{reset} En grid salta a la columna anterior; en 1 columna retrocede.
|
|
277
|
+
* {bright_yellow}→ (Derecha):{reset} En grid salta a la columna siguiente; en 1 columna avanza.
|
|
278
|
+
* {bright_yellow}Enter:{reset} Ejecuta la opcion seleccionada.
|
|
279
|
+
* {bright_yellow}q / Esc:{reset} Sale del menu (o limpia la busqueda si hay texto).
|
|
280
|
+
* {bright_yellow}Backspace:{reset} En buscador, borra la ultima letra.
|
|
281
|
+
* {bright_yellow}Ctrl+U:{reset} En buscador, limpia toda la consulta de texto.
|
|
282
|
+
|
|
283
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
284
|
+
{bright_yellow}[10] EJEMPLOS DE USO RAPIDO (SNIPPETS){reset}
|
|
285
|
+
{bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
|
|
286
|
+
|
|
287
|
+
{cyan}1. Menu con Buscador en Vivo y Modo RGB:{reset}
|
|
288
|
+
{bright_white}menu = GRmenu.new([:opcion1, :opcion2], banner: "APP", search: true){reset}
|
|
289
|
+
{bright_white}menu.set_style.banner("rgb"){reset}
|
|
290
|
+
{bright_white}menu.set_style.border("rgb"){reset}
|
|
291
|
+
{bright_white}menu.draw{reset}
|
|
292
|
+
|
|
293
|
+
{cyan}2. Seleccion Multiple de Paquetes:{reset}
|
|
294
|
+
{bright_white}items = ["PostgreSQL 16", "Redis 7.2", "Nginx"]{reset}
|
|
295
|
+
{bright_white}elegidos = GRmenu.checkbox(items, title: "Instalador", color: "rgb"){reset}
|
|
296
|
+
|
|
297
|
+
{cyan}3. Control Deslizante de Memoria:{reset}
|
|
298
|
+
{bright_white}ram = GRmenu.slider("Memoria RAM", min: 1, max: 64, default: 16, unit: "GB"){reset}
|
|
299
|
+
|
|
300
|
+
{cyan}4. Barra de Progreso con Status en Vivo:{reset}
|
|
301
|
+
{bright_white}GRmenu.progress(100, title: "Descargando", color: "rgb") do |bar|{reset}
|
|
302
|
+
{bright_white} 10.times { bar.advance(10, status: "Descargando bloques...") }{reset}
|
|
303
|
+
{bright_white}end{reset}
|
|
304
|
+
{bright_blue}─────────────────────────────────────────────────────────────────────────────────────{reset}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: grmenu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- grcode
|
|
@@ -16,7 +16,8 @@ email:
|
|
|
16
16
|
- garabatoangelopolis@gmail.com
|
|
17
17
|
executables: []
|
|
18
18
|
extensions: []
|
|
19
|
-
extra_rdoc_files:
|
|
19
|
+
extra_rdoc_files:
|
|
20
|
+
- README.md
|
|
20
21
|
files:
|
|
21
22
|
- GRmenu.rb
|
|
22
23
|
- LICENSE
|
|
@@ -24,6 +25,7 @@ files:
|
|
|
24
25
|
- data/borders.json
|
|
25
26
|
- data/colors.json
|
|
26
27
|
- data/fonts.json
|
|
28
|
+
- data/help.txt
|
|
27
29
|
homepage: https://github.com/JoseEduardoGR/GRmenu
|
|
28
30
|
licenses:
|
|
29
31
|
- MIT
|
|
@@ -31,7 +33,9 @@ metadata:
|
|
|
31
33
|
source_code_uri: https://github.com/JoseEduardoGR/GRmenu
|
|
32
34
|
bug_tracker_uri: https://github.com/JoseEduardoGR/GRmenu/issues
|
|
33
35
|
changelog_uri: https://github.com/JoseEduardoGR/GRmenu/commits/main
|
|
34
|
-
rdoc_options:
|
|
36
|
+
rdoc_options:
|
|
37
|
+
- "--main"
|
|
38
|
+
- README.md
|
|
35
39
|
require_paths:
|
|
36
40
|
- "."
|
|
37
41
|
required_ruby_version: !ruby/object:Gem::Requirement
|