Commit 59bf401

mo <mo.khan@gmail.com>
2018-04-29 21:12:47
allow loading a remote config file.
1 parent f83d8c7
Changed files (2)
lib/del/configuration.rb
@@ -28,5 +28,26 @@ module Del
       @socket_file = SOCKET_FILE
       @users = Repository.new
     end
+
+    def load(file)
+      return if file.nil?
+      return Kernel.load(file) if File.exist?(file)
+
+      eval(remote_fetch(file), binding)
+    end
+
+    private
+
+    def remote_fetch(url)
+      require 'uri'
+      require 'net/http'
+
+      uri = URI.parse(url)
+      http = Net::HTTP.new(uri.host, uri.port)
+      http.use_ssl = uri.is_a?(URI::HTTPS)
+      response = http.request(Net::HTTP::Get.new(uri.request_uri))
+      Del.logger.info("Loading...\n#{response.body}")
+      response.body
+    end
   end
 end
lib/del.rb
@@ -28,9 +28,8 @@ module Del
       config.router.register(/.*/) do |message|
         logger.debug(message.to_s)
       end
+      config.load(startup_file)
     end
-    load startup_file if startup_file && File.exist?(startup_file)
-
     del = Robot.new(configuration: configuration)
     del.get_funky!(start_server: start_server)
   end