2010-09-20 100 views
2

很多ruby框架实现了一个服务器来提供动态html文档。我正在创建自己的服务器,以便我可以提供自己的本地rdoc文档。如何创建一个像红宝石rails servergem server服务器?有人可以给我一个开始或指向我一些关于如何做到这一点的文档?谢谢如何在Ruby中创建服务器(如rails服务器或gem服务器)?

+0

你可以看一下现有的服务器宝石(和使用它们)如'puma','iodine'或'thin' ...碘是用纯Ruby编写之前版本。 0.2.0,但它现在写在C(免责声明,这是我的项目)。 – Myst 2016-10-20 16:45:46

回答

3

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

2

个人而言,我会使用的RDoc创建我的HTML docs基于我的代码中的注释,然后使用像nginx或apache这样的标准HTML服务器来处理服务部分。试图重新发明这些httpd-wheels将需要大量编码。

否则,如Todd和/或Rack所提到的Sinatra将是完美的起点,不需要完全滚动自己的服务器。特别是,Rack是为编写Web服务而编写的,因此熟悉它提供的内容将为您节省大量工作。

http://rack.rubyforge.org/