Commit 4ad4c6e
Changed files (3)
lib
lib/del/connection.rb
@@ -21,8 +21,8 @@ module Del
end
roster.get_roster
roster.wait_for_roster
- #@mention_name = roster[jid].attributes["mention_name"]
client.add_message_callback do |message|
+ next if message.type == :error || message.body.nil?
robot.receive(message)
end
client.send(Jabber::Presence.new(:chat))
lib/del/robot.rb
@@ -1,10 +1,8 @@
module Del
class Robot
- attr_reader :connection, :users, :rooms
+ attr_reader :connection
def initialize(configuration:)
- @users = UserRepository.new
- @rooms = RoomRepository.new
@connection = Connection.new(
configuration: configuration,
users: users,
@@ -12,7 +10,7 @@ module Del
)
end
- def run
+ def get_funky!
connection.connect(self)
sleep
rescue Interrupt
@@ -20,12 +18,21 @@ module Del
end
def receive(message)
- return if message.type == :error || message.body.nil?
send_message(message.from, message.body)
end
def send_message(jid, message)
connection.deliver(jid, message)
end
+
+ private
+
+ def users
+ @users ||= UserRepository.new
+ end
+
+ def rooms
+ @rooms ||= RoomRepository.new
+ end
end
end
lib/del.rb
@@ -15,12 +15,21 @@ module Del
def self.start(dotenv_file:)
puts "Loading... #{dotenv_file}"
Dotenv.load(dotenv_file)
- del = Robot.new(configuration: {
+ puts "It's fire! 🔥"
+ del = Robot.new(configuration: configuration)
+ del.get_funky!
+ end
+
+ def self.configure
+ yield configuration
+ end
+
+ def self.configuration
+ @configuration ||= {
host: ENV.fetch("DEL_HOST"),
jid: ENV.fetch("DEL_JID"),
muc_domain: ENV.fetch("DEL_MUC_DOMAIN"),
password: ENV.fetch("DEL_PASSWORD"),
- })
- del.run
+ }
end
end