summaryrefslogtreecommitdiff
path: root/lib/gitem/server.rb
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-12-11 16:27:45 -0700
committermo khan <mo@mokhan.ca>2025-12-11 16:27:45 -0700
commitde14376f33de34e27176a7492050ac1f99867648 (patch)
treeda980a7de3342deb859d17875fc90282e19d8ec7 /lib/gitem/server.rb
parentff11ed9e4078a18de5e0012a2b32c3f1440a84ba (diff)
feat: add subcommand to generate and run serverv0.2.0
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