从脚本Ruby中创建一个对象

时间:2015-04-07 22:22:52

标签: ruby class object

我正在尝试从类中创建一个对象。但是当需要它们时会创建对象。下面的代码有点难以解释

incoming_message = #message sent though inter webs
class Repeater
    def initialize(username, ip) 
    #repeat incoming message to back to ip
    end
end
incoming_message = Repeater.new(user, ip)

现在我无法做到这一点,因为incoming_message不是常数。 我怎么能绕过这个?

编辑:

清理一下。我确实需要使用这个类来创建具有不同名称的多个对象。转发器用于聊天服务器,其中来自1个用户的传入消息被接收,然后被发送回所有连接的客户端。每个连接的新客户端都有一个使用该特定IP地址创建的对象,以便来自其他人的消息可以发送给客户端。

每个发送到同一端口上的服务器的人都会收到来自其他用户的消息,然后读取该消息,然后写入客户收到的消息......

我希望这对所有困惑感到抱歉:)

2 个答案:

答案 0 :(得分:0)

如果要维护某种全局类级别状态,则应在Repeater上定义一个类级别访问器,以便将重复消息分配给。

class Repeater
  class << self
    attr_accessor :incoming_message
  end

  def initialize(username, ip) 
    # repeat Repeater.incoming_message to back to ip
  end
end

Repeater.incoming_message = "what"
Repeater.new(user, ip)

答案 1 :(得分:0)

您需要使用一些解析+序列化。他们可以连接已经序列化/编组的字符串吗?

1) convert the ruby code to yaml or json
2) use the json or yaml load method like myobj = YAML.load(new_yaml_string)

save it in another file called input and do a 
require 'input'
create object of repeater