Commit 79b93fe
Changed files (7)
bin
lib
del
bin/console
@@ -11,4 +11,8 @@ require "del"
# Pry.start
require "irb"
+Del.start(
+ dotenv_file: Pathname.new(Dir.home).join(".delrc"),
+ start_server: false,
+)
IRB.start(__FILE__)
lib/del/examples/routes.rb
@@ -10,4 +10,8 @@ Del.configure do |config|
Del.logger.info("COWSAY!")
message.reply("/code #{`cowsay #{match_data[1]}`}")
end
+
+ config.router.register(/^[Hh]ello/) do |message|
+ message.reply("Hi!")
+ end
end
lib/del/configuration.rb
@@ -17,7 +17,7 @@ module Del
@host = ENV.fetch("DEL_HOST", 'chat.hipchat.com')
@jid = ENV.fetch("DEL_JID")
@logger = Logger.new(STDOUT)
- @logger.level = Logger::INFO
+ @logger.level = ENV.fetch('LOG_LEVEL', Logger::INFO).to_i
@muc_domain = ENV.fetch("DEL_MUC_DOMAIN", "conf.hipchat.com")
@name = ENV.fetch("DEL_FULL_NAME")
@password = ENV.fetch("DEL_PASSWORD")
lib/del/robot.rb
@@ -14,10 +14,10 @@ module Del
@server = SocketServer.new
end
- def get_funky!
+ def get_funky!(start_server: true)
Del.logger.info("It's fire! 🔥")
connection.connect(self)
- server.run(self)
+ server.run(self) if start_server
rescue Interrupt
connection.disconnect
end
@@ -27,12 +27,18 @@ module Del
router.route(Message.new(message, robot: self, source: source))
end
- def send_message(jid, message, room: nil)
- if room.nil?
+ def send_message(jid, message)
+ if user?(jid)
connection.deliver(jid, message)
else
- connection.deliver_to_room(room, message)
+ connection.deliver_to_room(jid, message)
end
end
+
+ private
+
+ def user?(jid)
+ users[jid]
+ end
end
end
lib/del/socket_server.rb
@@ -7,7 +7,9 @@ module Del
def run(robot)
loop do
@connection.on_receive do |socket|
- Del.logger.info(socket.readline)
+ line = socket.readline
+ Del.logger.debug(line)
+ robot.process(line)
end
end
end
lib/del/source.rb
@@ -12,7 +12,7 @@ module Del
end
def reply(robot, message)
- robot.send_message(user.jid, message, room: room)
+ robot.send_message(room || user.jid, message)
end
def to_s
lib/del.rb
@@ -19,7 +19,7 @@ require "del/user"
require "del/version"
module Del
- def self.start(dotenv_file:, startup_file:)
+ def self.start(dotenv_file:, startup_file: nil, start_server: true)
puts "Loading... #{dotenv_file}"
Dotenv.load(dotenv_file.to_s)
Del.configure do |config|
@@ -30,7 +30,7 @@ module Del
load startup_file if startup_file && File.exist?(startup_file)
del = Robot.new(configuration: configuration)
- del.get_funky!
+ del.get_funky!(start_server: start_server)
end
def self.configure