2010-09-20 2 views
2

Un grand nombre de frameworks ruby ​​implémentent un serveur pour servir des documents html dynamiques. Je cherche à créer mon propre serveur afin que je puisse servir ma propre documentation rdoc locale. Comment créer un serveur à ruby ​​comme rails server ou gem server? Quelqu'un peut-il me donner un point de départ ou me diriger vers une documentation sur la façon de faire cela? MerciComment créer un serveur dans Ruby (comme le serveur rails ou le serveur gem)?

+0

Vous pouvez regarder les pierres précieuses de serveur existant (et les utiliser) comme 'puma',' 'iodine' ou thin' ... L'iode a été écrit en Ruby pur avant ver. 0.2.0, mais il est maintenant écrit en C (avertissement, c'est mon projet). – Myst

Répondre

3

Sinatra est un bon moyen d'aller, surtout si vous générez du HTML à la volée. Voici un exemple rapide comme outil de ligne de commande:

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. Et pour plus de fonctionnalités, 'rack' est le chemin à parcourir. – Swanand

2

Personnellement j'utiliser rdoc pour créer mon HTML docs basé sur les commentaires dans mon code, puis utilisez un serveur HTML standard comme nginx ou apache pour gérer la partie serveur. Essayer de réinventer ces roues httpd nécessitera beaucoup de codage de votre part. Dans le cas contraire, Sinatra, comme mentionné par Todd, et/ou Rack seront de bons points de départ pour construire sans rouler complètement votre propre serveur. En particulier, Rack a été écrit pour faciliter la création de services Web, de sorte que se familiariser avec ce qu'il offre vous permettra d'économiser beaucoup de travail.

http://rack.rubyforge.org/

Questions connexes