Как создать исполняемый файл (.exe) из сценария Ruby в Windows, используя OCRA

Вы один из тех разработчиков, которые создают сценарии, чтобы сделать свою жизнь проще? по совпадению, ты любишь Руби? а у тебя винда ?. Вместо того чтобы постоянно работать с консолью, выполняющим сценарии вручную в консоли, вам необходимо знать, что существует простой способ их выполнения и даже создание небольших консольных приложений с ними в Windows. Мы говорим о создании .exe (да, файлы приложений) файлы со скриптами ruby, благодаря One-Click Ruby Application Builder. OCRA, создает исполняемые файлы Windows из исходного кода Ruby! Эти исполняемые файлы представляют собой самораспаковывающиеся, самозапускающиеся исполняемые файлы, которые содержат интерпретатор Ruby, ваш исходный код и любые дополнительные необходимые библиотеки ruby ​​или DLL.

В этой статье вы узнаете, как легко создать исполняемый файл из сценария ruby, используя OCRA в Windows.

Требования

Для создания нашего исполняемого файла мы будем использовать гем OCRA. Чтобы загрузить OCRA, выполните в командной строке следующую команду (cmd.exe):

gem install ocra

Менеджер драгоценных камней начнет загрузку ocra, и в конце установки gem (пакет) должен быть доступен в качестве переменной среды в командной строке.

Настройка OCRA Gem

Вы можете прочитать больше об этом пакете в официальном репозитории или в документации здесь. Чтобы проверить, правильно ли был установлен OCRA, вы можете проверить, доступен ли он в консоли в качестве переменной среды, выполняющей ocra --help,

Кроме того, вы можете скачать драгоценный камень в любом rubygems.org/gems/ocra или же github.com/larsch/ocra/releases/. Автономная версия: Получить ocrasa.rb от github.com/larsch/ocra/releases/. Не требует ничего, кроме работающей установки Ruby в Windows.

Реализация

Создание исполняемого файла с использованием OCRA очень просто, настраиваемо и очень просто. Все, что вам нужно — это ocra как переменная окружения (что должно автоматически произойти при установке гема) и знать, какой файл вы хотите упаковать.

В нашем примере мы собираемся создать исполняемый файл следующего скрипта. Имя файла сценария file-creator.rb и содержит следующий код (он просто запрашивает у пользователя имя нового файла и содержимое):

# Declare start wizard method
def start_wizard
prompt = "> "
puts "Hi welcome to Text File Creator 2000"
puts prompt + "To get started, give a name to your file (without extension)"
filename = $stdin.gets.chomp
puts prompt + "Awesome, now provide the content of the file !"
content = $stdin.gets.chomp
puts """
Alright, so your filename will be #{filename}.
And the content will be #{content}.  Do you want to continue (Yes[y]/No[n])?
"""
# Confirm the creation of the file
response = $stdin.gets.chomp
case response
# If confirm, create the file
when 'Y', 'y', 'j', 'J', 'yes', 'Yes'
out_file = File.new("#{filename}.txt", "w")
out_file.puts(content)
out_file.close
puts "Your file has been succesfully created, come back soon !"
# If not, ask if he wants to continue or just exit
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
# Start execution
begin
start_wizard()
# Write a log in case of error
rescue Exception => e
File.open("except.log") do |f|
f.puts e.inspect
f.puts e.backtrace
end
end

Как видите, это простое консольное Ruby-приложение. Теперь, чтобы создать исполняемый файл, перейдите с помощью консоли (cmd.exe) в папку, где находится скрипт ruby ​​(в данном случае Desktop \ Ruby):

cd C:\Users\sdkca\Desktop\ruby

Теперь перейдите к процессу, используя следующую команду:

ocra file-creator.rb

Это самая простая команда для создания исполняемого файла вашего скрипта, поэтому этого должно быть достаточно для создания исполняемого файла в папке, где расположен скрипт.

Тем не менее, есть интересное поведение, с которым вы, возможно, столкнетесь, когда будете переносить сценарий. OCRA немедленно выполняет сценарий, чтобы проверить наличие зависимостей (.DLL и других файлов), чтобы сделать ваш сценарий максимально независимым и, очевидно, если ваш сценарий требует взаимодействия с пользователем (приглашение или ввод требуемого значения), вы не захотите что OCRA выполняет ваш скрипт по разным причинам. Чтобы предотвратить такое поведение, вам нужно предоставить параметр, чтобы OCRA игнорировала выполнение скрипта:

ocra text-creator.rb --no-dep-run

Теперь выполните команду и соберите свой первый исполняемый файл:

Создать исполняемый файл из сценария ruby

Наконец, вы можете проверить созданный исполняемый файл в той же папке, где находится скрипт:

Скрипт Ruby

Советы и предложения

  • DLL определяются автоматически, но включены только те, которые находятся в вашей установке Ruby.

  • .rb файлы станут консольными приложениями. .rbw файлы станут оконным приложением (без всплывающего окна консоли). В качестве альтернативы используйте «--console» или же «--windows» опции.

  • Вы можете изменить значок вашего исполняемого файла, добавив параметр icon (с путем к файлу в качестве значения) в команду (ocra script.rb --icon=c:\path-to\icon.ico).

Повеселись !

Ссылка на основную публикацию
Adblock
detector