2010-10-12 60 views
0

我需要如何在ruby中編寫web /應用程序服務器?

  • 運行ant remotelly
  • 創建/修改XML文件螞蟻
  • 從螞蟻的執行回傳結果

,所以我想我會寫一個網頁/應用程序服務器在紅寶石。但我不知道從哪裏開始。

運行ant的計算機是Win XP SP3,沒有網絡服務器或其他任何運行。

我發現這個代碼,但不知道哪個部分要修改,所以我做我想做的。假設我想運行「dir」命令並返回到該命令的瀏覽器結果。

require 'socket' 
webserver = TCPServer.new('127.0.0.1', 7125) 
while (session = webserver.accept) 
    session.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n" 
    request = session.gets 
    trimmedrequest = request.gsub(/GET\ \//, '').gsub(/\ HTTP.*/, '') 
    filename = trimmedrequest.chomp 
    if filename == "" 
     filename = "index.html" 
    end 
    begin 
     displayfile = File.open(filename, 'r') 
     content = displayfile.read() 
     session.print content 
    rescue Errno::ENOENT 
    session.print "File not found" 
    end 
    session.close 
end 

回答

1

Ruby包含一個Web服務器(WEBrick),所以您實際上並不需要使用您發佈的代碼。 Sinatra專爲編寫非常小的Web應用程序而設計,它允許您用幾行代碼編寫Web應用程序,並自動使用提供的Web服務器。

+0

聽起來不錯。我找不到任何我會用的例子。任何應用程序的樣本,其中將有一個HTML頁面的鏈接和每個鏈接意味着紅寶石會調用一個外部程序? – Radek 2010-10-13 03:34:49

+0

這是我正在尋找fooooor http://net.tutsplus.com/tutorials/ruby/an-introduction-to-haml-and-sinatra/(謝謝蒂姆) – Radek 2010-10-13 05:49:15

+1

@Radek:我想說的一件事是isn在那篇文章中:如果你使用Shotgun,開發一個Sinatra應用程序會更快,更愉快。這會在您每次保存更改時自動重新加載您的代碼,以便您不必在每次編輯時都啓動和停止應用程序。 – 2010-10-13 08:48:53

1

您可以使用Ruby Web服務器,如機架,使用WEBrick,雜種,你也可以使用Ruby on Rails的,西納特拉你想要什麼。

當然,您可以從頭開始編寫代碼,但不宜自行編寫整個代碼。

相關問題