Commit 4ad4c6e

mo <mo.khan@gmail.com>
2018-04-27 21:41:39
allow configuration override. tag: v0.1.1
1 parent b0f2f49
Changed files (3)
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