无法从Ruby脚本创建EXE文件

时间:2014-08-13 09:57:29

标签: ruby ocra

我无法从Ruby脚本创建EXE文件。

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

它构建了一个exe文件,但我无法使用它:

  

server.rb:1:在`require'中:没有要加载的文件 - socket(LoadError)           来自server.rb:1

1 个答案:

答案 0 :(得分:3)

require 'socket'
require 'rubygems'
exit if Object.const_defined?(:Ocra) #allow ocra to create an exe without executing the entire script

将以上内容添加到您的脚本中,这应该允许它生成。 如果你不包含'rubygems'

,Ocra有时看不到红宝石和其他文件