2016-07-22 7 views
2

ルビースクリプト言語を学んでいます。私はルビーで演習を行っていました。 私には1つの問題がありました。私はブラウザにルビの出力を表示する必要があります。ブラウザにルビ出力を表示する方法は?

たとえば、hello.rbという名前の1つのルビスクリプトがあります。 「Hello world message」が表示されます。通常、Rubyインタプリタでこれを実行すると、それが端末で印刷されます。私はrubyスクリプトを呼び出すことによって、ブラウザにhello worldメッセージを出力する必要があります。

私はインターネットで紹介されました。その中で、彼らは宝石の「傾き」をインストールする必要があると言いました。

どのような宝石をインストールしなくても、これをどのように達成できますか?

ありがとうございました!

+2

(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が付属しています。次のコードは、単純な「ハロー、ワールド」Webサーバを実装するためにWEBrickにを使用しています:」を実行すると

require "webrick" 

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

、それが実行され、リクエストを処理する準備ができていることを示すために、いくつかのログ出力を出力します。

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

Althou:

[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のユーティリティ カールを使用しましたgh私はカールを使用して、任意のWebブラウザも動作します。プログラムを起動した後にWebブラウザを送信します([例]を参照してくださいあなたはhttpサーバを自分で構築しなければならないシナトラやRailsのようなWebフレームワークなしで何を意味するのか、いずれかの宝石をインストールせずに

http://localhost:8000 
+0

Webブラウザで「hello world」メッセージを表示する方法をクライアントに接続していますか? – suresh

+0

@ suuresh私はあなたの質問を理解していません。 「クライアントに接続しない」とはどういう意味ですか? –

+0

ここであなたはカールを使用すると言った。私はしたくないと思う。 htmlファイルを実行するのと同じように、ブラウザウィンドウでhello worldの出力を表示するにはrubyを実行する必要があります。 – suresh

関連する問題