class IMP::Daemon::Handler
Public Class Methods
each() { |hand| ... }
click to toggle source
# File lib/daemon/handler/each.rb, line 5 def self.each &block @@all.each do |hand| yield hand end end
event(name, &block)
click to toggle source
# File lib/daemon/handler/event.rb, line 5 def self.event name, &block define_method("event_#{name}", block) end
new(socket)
click to toggle source
# File lib/daemon/handler/initialize.rb, line 7 def initialize socket @sock = socket @port = nil @user = nil # identification @sock.puts({ 'imp' => 'imp', 'version' => IMP::VERSION, }.to_json) # add to connected client list @@all << self # now just receive requests listener end
Public Instance Methods
close()
click to toggle source
# File lib/daemon/handler/close.rb, line 5 def close @sock&.close end
listener()
click to toggle source
# File lib/daemon/handler/initialize.rb, line 27 def listener loop do respond rescue IOError @all.delete(self) close break rescue end end
respond()
click to toggle source
# File lib/daemon/handler/respond.rb, line 5 def respond buff = @sock.gets buff = JSON.parse(buff) event = buff["event"] data = buff['data'] begin func = method("event_#{event}") data = case func.arity when 0 func.call else func.call(data) end rescue => e puts e end pp data buff["data"] = data @sock.puts buff.to_json end