class Del::Robot

A funky robo-sapien.

Attributes

configuration[R]
jid[R]
name[R]

Public Class Methods

new(configuration: Del.configuration) click to toggle source
# File lib/del/robot.rb, line 8
def initialize(configuration: Del.configuration)
  @configuration = configuration
  @jid = configuration.jid
  @name = configuration.name
end

Public Instance Methods

get_funky!(start_server: true) click to toggle source
# File lib/del/robot.rb, line 14
def get_funky!(start_server: true)
  Del.logger.info('🔥🔥🔥')
  xmpp_connection.connect(self)
  if start_server
    deltron = Del::Tron.new(self, configuration)
    socket_server.run(deltron)
  end
rescue Interrupt
  xmpp_connection.disconnect
end
receive(message, source:) click to toggle source
# File lib/del/robot.rb, line 25
def receive(message, source:)
  return if source.from?(self)

  configuration.router.route(
    Message.new(message, robot: self, source: source)
  )
end
send_message(jid, message) click to toggle source
# File lib/del/robot.rb, line 33
def send_message(jid, message)
  if user?(jid)
    xmpp_connection.deliver(jid, message)
  else
    xmpp_connection.deliver_to_room(jid, message)
  end
end

Private Instance Methods

socket_server() click to toggle source
# File lib/del/robot.rb, line 60
def socket_server
  @socket_server ||=
    SocketServer.new(socket_file: configuration.socket_file)
end
user?(jid) click to toggle source
# File lib/del/robot.rb, line 65
def user?(jid)
  configuration.users[jid]
end
xmpp_connection() click to toggle source
# File lib/del/robot.rb, line 56
def xmpp_connection
  @xmpp_connection ||= XMPPConnection.new(configuration: configuration)
end