I am unable to create an EXE file from Ruby script.
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)
I'm trying to run the following command:
ocra server.rb
but it freezes on the message
=== Loading script to check dependencies
I've also tried to use exerb:
ruby exerb server.rb
It builds an exe file, but I am unable to use it:
server.rb:1:in `require': No such file to load -- socket (LoadError) from server.rb:1
require 'socket'
require 'rubygems'
exit if Object.const_defined?(:Ocra) #allow ocra to create an exe without executing the entire script
Add the above to your script, this should allow it to generate. Ocra cannot see ruby gems and other files at times if you don't include 'rubygems'