summaryrefslogtreecommitdiff
path: root/lib/gitem/server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitem/server.rb')
-rw-r--r--lib/gitem/server.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/gitem/server.rb b/lib/gitem/server.rb
new file mode 100644
index 0000000..c73ff56
--- /dev/null
+++ b/lib/gitem/server.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module Gitem
+ class Server
+ attr_reader :url
+
+ def initialize(root, port = 8000)
+ @root = root
+ @port = port
+ @url = "http://localhost:#{port}"
+ end
+
+ def start
+ puts "🌐 Server running at #{@url}"
+ puts " Press Ctrl+C to stop\n\n"
+ server = WEBrick::HTTPServer.new(
+ Port: @port, DocumentRoot: @root,
+ Logger: WEBrick::Log.new($stderr, WEBrick::Log::WARN), AccessLog: []
+ )
+ trap("INT") { server.shutdown }
+ trap("TERM") { server.shutdown }
+ server.start
+ end
+ end
+end