2016-07-22 33 views
2

我正在學習ruby腳本語言。我正在用紅寶石進行練習。 因爲我有一個問題。我需要在瀏覽器中顯示ruby輸出。如何在瀏覽器中顯示ruby輸出?

例如,我有一個ruby腳本,名爲hello.rb。它將打印「Hello world消息」。通常,如果我們使用ruby解釋器執行此操作,它將在終端中打印它。我需要通過調用ruby腳本在瀏覽器中打印hello world消息。

爲此,我在互聯網上提到。因爲他們告訴你需要安裝寶石'傾斜'。

沒有安裝任何寶石,我們如何實現這一目標?

在此先感謝!

+2

無需安裝任何寶石,有什麼不一樣西納特拉或者Rails Web框架意味着你將不得不自己建立一個HTTP服務器(見的[示例](HTTPS: //www.practicingruby.com/articles/implementing-an-http-file-server))。該服務器至少需要能夠接受請求,運行腳本,捕獲腳本的輸出,然後使用輸出呈現html文檔並將其返回給瀏覽器。這太寬了 爲一個stackoverflow問題。也許你可以開始關注鏈接的文章,並在遇到問題時詢問更具體的問題。 – spickermann

+1

@spickermann你一定是在開玩笑:)即使是簡單的'cgi-bin'也可以。任何現有的Web服務器都可能執行外部可執行文件並呈現輸出。但是對於這個問題,這仍然過於寬泛。 – mudasobwa

+1

@mudasobwa我讀到這個問題,好像他想要使用沒有任何寶石的普通Ruby。我想這意味着沒有任何其他外部依賴(如需要安裝Web服務器)。如果OP有機會詳細闡述這些要求,那將會很棒。 – spickermann

回答

3

Ruby帶有一個簡單的web服務器,webrick。下面的代碼使用的WEBrick實現一個簡單的「你好,世界」 Web服務器:」

require "webrick" 

server = WEBrick::HTTPServer.new(Port: 8000) 
server.mount_proc "/" do |req, res| 
    res.body = "Hello, world!\n" 
end 
server.start 

運行時,它打印一些日誌輸出,以表明它正在運行,並且準備好服務請求:

[2016-07-22 12:02:01] INFO WEBrick 1.3.1 
[2016-07-22 12:02:01] INFO ruby 2.3.1 (2016-04-26) [x86_64-linux] 
[2016-07-22 12:02:01] INFO WEBrick::HTTPServer#start: pid=16318 port=8000 

我用的* nix實用捲曲給服務器發送一個請求:

[email protected]:~$ curl localhost:8000 
Hello, world! 

Althou呃我用捲曲,任何網絡瀏覽器也會工作。啓動程序後,把你的網頁瀏覽器:

http://localhost:8000 
+0

沒有連接客戶端如何在Web瀏覽器中顯示「hello world」消息? – suresh

+0

@suresh我不明白你的問題。 「沒有連接客戶端」是什麼意思? –

+0

在這裏你說了一些叫做使用捲曲的東西。我不想這樣做。像執行html文件一樣,我需要執行ruby,在瀏覽器窗口中顯示hello world輸出。 – suresh

相關問題