Aprenda a crear aplicaciones de Windows o de consola fáciles de ejecutar (a 1 clic) utilizando OCRA para crear un archivo .exe a partir de un script ruby.

Cómo crear un ejecutable (.exe) a partir de un script Ruby en Windows usando OCRA

¿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.

OCRA setup Gem

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:

Create executable from a ruby script

Finalmente, puedes probar el ejecutable creado en la misma carpeta donde se encuentra el script:

Script Ruby

Consejos y sugerencias

  • Las DLL se detectan automáticamente, pero solo se incluyen las ubicadas en su instalación de Ruby.

  • .rblos archivos se convertirán en aplicaciones de consola. .rbwlos 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 ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores