backend|cli: add Twenty::Servlet.server
.
This commit is contained in:
parent
8ca73dc1d9
commit
fc67398bad
3 changed files with 25 additions and 11 deletions
|
@ -2,6 +2,8 @@ class Twenty::Servlet < WEBrick::HTTPServlet::AbstractServlet
|
||||||
require_relative "servlet/response"
|
require_relative "servlet/response"
|
||||||
require_relative "servlet/projects"
|
require_relative "servlet/projects"
|
||||||
require_relative "servlet/tasks"
|
require_relative "servlet/tasks"
|
||||||
|
require_relative "servlet/mixin/server_mixin"
|
||||||
|
extend ServerMixin
|
||||||
|
|
||||||
def ok(res, body = {})
|
def ok(res, body = {})
|
||||||
Response.new(res)
|
Response.new(res)
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
module Twenty::Servlet::ServerMixin
|
||||||
|
##
|
||||||
|
# @return [WEBrick::HTTPServer]
|
||||||
|
# Returns an instance of WEBrick::HTTPServer.
|
||||||
|
def server(options = {})
|
||||||
|
server = WEBrick::HTTPServer.new server_options.merge(options)
|
||||||
|
server.mount '/servlet/projects', Twenty::Servlet::Projects
|
||||||
|
server.mount '/servlet/tasks', Twenty::Servlet::Tasks
|
||||||
|
server
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# @return [Hash<Symbol, String>]
|
||||||
|
# The default server options given to WEBrick::HTTPServer.new.
|
||||||
|
def server_options
|
||||||
|
{
|
||||||
|
DocumentRoot: Twenty.build,
|
||||||
|
BindAddress: "127.0.0.1",
|
||||||
|
Port: 2020
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,18 +10,8 @@ class Twenty::Command::Up < Twenty::Command
|
||||||
private
|
private
|
||||||
|
|
||||||
def run_command
|
def run_command
|
||||||
server = WEBrick::HTTPServer.new(server_options)
|
server = Twenty::Servlet.server
|
||||||
server.mount '/servlet/projects', Twenty::Servlet::Projects
|
|
||||||
server.mount '/servlet/tasks', Twenty::Servlet::Tasks
|
|
||||||
trap(:SIGINT) { server.shutdown }
|
trap(:SIGINT) { server.shutdown }
|
||||||
server.start
|
server.start
|
||||||
end
|
end
|
||||||
|
|
||||||
def server_options
|
|
||||||
{
|
|
||||||
DocumentRoot: Twenty.build,
|
|
||||||
BindAddress: "127.0.0.1",
|
|
||||||
Port: 2020
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue