Вы один из тех разработчиков, которые создают сценарии, чтобы сделать свою жизнь проще? по совпадению, ты любишь Руби? а у тебя винда ?. Вместо того чтобы постоянно работать с консолью, выполняющим сценарии вручную в консоли, вам необходимо знать, что существует простой способ их выполнения и даже создание небольших консольных приложений с ними в 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, вы можете проверить, доступен ли он в консоли в качестве переменной среды, выполняющей 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
Теперь выполните команду и соберите свой первый исполняемый файл:
Наконец, вы можете проверить созданный исполняемый файл в той же папке, где находится скрипт:
Советы и предложения
DLL определяются автоматически, но включены только те, которые находятся в вашей установке Ruby.
.rb
файлы станут консольными приложениями..rbw
файлы станут оконным приложением (без всплывающего окна консоли). В качестве альтернативы используйте «--console
» или же «--windows
» опции.- Вы можете изменить значок вашего исполняемого файла, добавив параметр icon (с путем к файлу в качестве значения) в команду (
ocra script.rb --icon=c:\path-to\icon.ico
).
Повеселись !