¿Eres uno de esos desarrolladores que crean scripts para hacer su propia vida más fácil? casualmente, ¿te gusta Ruby? y tienes Windows ?. En lugar de trabajar repetidamente con la consola ejecutando sus scripts manualmente en la consola, necesita saber que hay una manera fácil de ejecutarlos e incluso crear pequeñas aplicaciones de consola con ellos en Windows. Estamos hablando de crear .exe
(sí, archivos de aplicación) archivos con scripts ruby, gracias a One-Click Ruby Application Builder. OCRA, construye ejecutables de Windows a partir del código fuente de Ruby. Estos ejecutables son ejecutables autoextraíbles y autoejecutables que contienen el intérprete de Ruby, su código fuente y cualquier biblioteca ruby ââo DLL adicional necesaria.
En este artículo, aprenderá cómo crear un ejecutable a partir de un script ruby ââfácilmente usando OCRA en Windows.
Requisitos
Para crear nuestro ejecutable, usaremos la gema OCRA. Para descargar OCRA, ejecute el siguiente comando en su símbolo del sistema (cmd.exe):
gem install ocra
El administrador de gemas iniciará la descarga de ocra y la gema (paquete), al final de la instalación, debería poder ser una variable de entorno en el símbolo del sistema.
Puede leer más sobre este paquete en el repositorio oficial o en la documentación aquí. Para verificar si OCRA se instaló correctamente, puede verificar si está disponible en la consola como una variable de entorno en ejecución ocra --help
.
Alternativamente, puedes descargar la gema en rubygems.org/gems/ocra o github.com/larsch/ocra/releases/. Versión independiente: github.com/larsch/ocra/releases/. No requiere nada más que una instalación de Ruby que funcione en Windows.
Implementación
La creación de un ejecutable usando OCRA es muy sencilla, personalizable y muy fácil de hacer. Todo lo que necesitas es tener OCRA como variable de entorno (lo que debería suceder automáticamente con la instalación de la gema) y saber qué archivo deseas empaquetar.
En nuestro ejemplo, crearemos un ejecutable del siguiente script. El nombre de archivo de la secuencia de comandos es file-creator.rb
y contiene el siguiente código (solo solicita al usuario el nombre de un nuevo archivo y el contenido):
# Declarar el método del asistente de inicio
def start_wizard
prompt = "> "
puts "Hola bienvenido a Text File Creator 2000"
puts prompt + "Para comenzar, asigne un nombre a su archivo (sin extensión)"
filename = $stdin.gets.chomp
puts prompt + "¡Genial, ahora proporciona el contenido del archivo!"
content = $stdin.gets.chomp
puts """
Muy bien, entonces su nombre de archivo será #{filename}.
Y el contenido será #{content}. Quieres continuar(Yes[y]/No[n])?
"""
# Confirmar la creación del archivo
response = $stdin.gets.chomp
case response
# Si confirma, cree el archivo
when 'Y', 'y', 'j', 'J', 'yes', 'Yes'
out_file = File.new("#{filename}.txt", "w")
out_file.puts(content)
out_file.close
puts "Su archivo ha sido creado con éxito, ¡vuelva pronto!"
# Si no es así, pregúntele si quiere continuar o simplemente salir.
when 'No','N','no'
puts prompt + "Oh :(, do you want to start again (Yes[y]/No[n])?"
response = $stdin.gets.chomp
case response
when 'Y', 'y', 'j', 'J', 'yes', 'Yes'
start_wizard()
when 'No','N','no'
exit
end
end
end
# Iniciar ejecución
begin
start_wizard()
# Escribe un registro en caso de error
rescue Exception => e
File.open("except.log") do |f|
f.puts e.inspect
f.puts e.backtrace
end
end
Como puede ver, es una aplicación Ruby de consola simple. Ahora para crear el ejecutable, navegue con la consola (cmd.exe) a la carpeta donde se encuentra el script de ruby ââ(en este caso Desktop\Ruby):
cd C:\Users\sdkca\Desktop\ruby
Ahora, continúe con el proceso usando el siguiente comando:
ocra file-creator.rb
Ese es el comando más simple para crear un ejecutable de su script, por lo que debería ser suficiente para crear el ejecutable en la carpeta donde se encuentra el script.
Sin embargo, hay un comportamiento interesante al que probablemente te enfrentes mientras envuelves tu guión. OCRA ejecuta la secuencia de comandos inmediatamente para verificar las dependencias (.DLL y otros archivos) para hacer que su secuencia de comandos sea lo más independiente posible y, obviamente, si su secuencia de comandos requiere interacción con el usuario (un mensaje o una entrada de valor requerida) no querrá que OCRA ejecuta su script por diferentes razones. Para evitar este comportamiento, debe proporcionar un parámetro para que OCRA ignore la ejecución del script:
ocra text-creator.rb --no-dep-run
Ahora ejecuta el comando y cree su primer ejecutable:
Finalmente, puedes probar el ejecutable creado en la misma carpeta donde se encuentra el script:
Consejos y sugerencias
-
Las DLL se detectan automáticamente, pero solo se incluyen las ubicadas en su instalación de Ruby.
-
.rb
los archivos se convertirán en aplicaciones de consola..rbw
los archivos se convertirán en aplicaciones con ventana (sin que aparezca una ventana de consola). Alternativamente, use las opciones “--console
” o “--windows
”. - Puede cambiar el icono de su ejecutable agregando el parámetro del icono (con la ruta del archivo como valor) al comando (
ocra script.rb --icon=c:\path-to\icon.ico
).
Que te diviertas ❤️!
Conviertete en un programador más sociable