Module: Madrox::ServerHandler

Defined in:
lib/madrox-cluster/server/server_handler.rb

Instance Method Summary collapse

Instance Method Details

#execute(code, args) ⇒ Object



13
14
15
16
17
# File 'lib/madrox-cluster/server/server_handler.rb', line 13

def execute(code, args)
  args = args.first if args.size == 1
  result = eval(code).call(args)
  JsonPackage.result(result)
end

#post_initObject



4
5
6
7
# File 'lib/madrox-cluster/server/server_handler.rb', line 4

def post_init
  port, ip = Socket.unpack_sockaddr_in(self.get_peername)
  puts "#{ip} has connected"
end

#receive_data(package) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/madrox-cluster/server/server_handler.rb', line 19

def receive_data(package)
  Thread.new do
    data = JsonPackage.parse(package)
    puts "-----"
    puts data
    case data.type
    when "register"
      register(data.reference, data.code)
    when "execute"
      result = execute(data.code, data.args)
      send_data result.to_s + "\n"
    end
  end
end

#register(reference, code) ⇒ Object



9
10
11
# File 'lib/madrox-cluster/server/server_handler.rb', line 9

def register(reference, code)
  eval("#{reference} = #{code}.call()")
end