Невозможно создать EXE-файл из сценария Ruby
Я не могу создать файл EXE из сценария Ruby.
require 'socket'
class Server
def initialize(ip, port)
@server = TCPServer.open(ip, port)
@clients = Array.new
run
end
def run
loop {
Thread.start(@server.accept) do |client|
@clients << client
client.puts 'Connection established'
listen_user_messages(client)
end
}.join
end
def listen_user_messages(client)
loop {
msg = client.gets.chomp
@clients.each do |other_client|
if other_client != client
other_client.puts "#{msg}"
end
end
}
end
end
Server.new('localhost', 19937)
Я пытаюсь запустить следующую команду:
ocra server.rb
но он зависает на сообщении
=== Загрузка скрипта для проверки зависимостей
Я также пытался использовать exerb:
ruby exerb server.rb
Он создает исполняемый файл, но я не могу его использовать:
server.rb:1: в `require': нет такого файла для загрузки - сокет (LoadError) из server.rb:1
1 ответ
Решение
require 'socket'
require 'rubygems'
exit if Object.const_defined?(:Ocra) #allow ocra to create an exe without executing the entire script
Добавьте вышеперечисленное в ваш скрипт, это должно позволить его сгенерировать. Ocra иногда не может видеть рубиновые самоцветы и другие файлы, если вы не включили 'rubygems'