如何在Ruby中创建服务器(如rails服务器或gem服务器)?
问题描述:
很多ruby框架实现了一个服务器来提供动态html文档。我正在创建自己的服务器,以便我可以提供自己的本地rdoc文档。如何创建一个像红宝石rails server
或gem server
服务器?有人可以给我一个开始或指向我一些关于如何做到这一点的文档?谢谢如何在Ruby中创建服务器(如rails服务器或gem服务器)?
答
Sinatra是一个很好的方法,尤其是如果您正在生成HTML。这里有一个简单的例子是一个命令行工具:
example.rb:
options = {}
parser = OptionParser.new do |opts|
opts.banner = "Usage: example [command] [options]"
opts.on("-a", "--address HOST") { |arg| options[:bind] = arg }
opts.on("-p", "--port PORT") { |arg| options[:port] = arg }
end
parser.parse(ARGV)
case command = ARGV.first.to_sym
when :serve
require "server"
Example::Server.run! options
else
raise "Unknown command: #{command}"
end
server.rb:
require "rubygems"
require "sinatra/base"
module Example
class Server < Sinatra::Base
get "/" do
"Generate some HTML here."
end
end
end
+0
+1。而为了实现更多功能,“机架”是要走的路。 – Swanand 2010-09-20 06:56:28
答
个人而言,我会使用的RDoc创建我的HTML docs基于我的代码中的注释,然后使用像nginx或apache这样的标准HTML服务器来处理服务部分。试图重新发明这些httpd-wheels将需要大量编码。
否则,如Todd和/或Rack所提到的Sinatra将是完美的起点,不需要完全滚动自己的服务器。特别是,Rack是为编写Web服务而编写的,因此熟悉它提供的内容将为您节省大量工作。
你可以看一下现有的服务器宝石(和使用它们)如'puma','iodine'或'thin' ...碘是用纯Ruby编写之前版本。 0.2.0,但它现在写在C(免责声明,这是我的项目)。 – Myst 2016-10-20 16:45:46