Rails(RoR)にすっかり乗り遅れて、今更Macにインストールしてみたら
5.0.0がインストールされて衝撃を受けました。(という程でもないですが)
Rubyは、Railsのランタイムだと思っている人もいるらしいですが、
そんなことにならないためにもRuby自体を学ばなければと思います。
Atomとかで変数とかforとかifとか書いていたわけですが、全然面白くねぇ!ってことで、
ちょっとやっぱWebだよねと。
んで、古い知識を掘り起こしつつ調べてみるとCGIとERBは、
公式ドキュメントに載ってるので今でも有効なようです。
(teratailには、CGIタグが無いだと!ERBも!)
なので、いろいろなサイト見ながらCGIとERBそれぞれ書いてみましたが、まあまあ動きます。
一応、それぞれ書いたコードを載せます。(ほぼコピペですが)
CGI
Ruby
1#!/usr/bin/ruby 2 3require "cgi" 4cgi = CGI.new 5 6print "Content-type: text/html\n\n" 7strdata = cgi["textdata"] 8 9print <<EOM 10<html> 11<head> 12 <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 13 <title>Ruby CGI</title> 14</head> 15<body> 16 17#{strdata} <br /> 18 19</body> 20</html> 21EOM
ERB
Ruby
1#!/usr/bin/ruby 2 3require 'erb' 4 5print "Content-type: text/html\n\n" 6str1 = 'あいう' 7 8contents = <<EOM 9<html> 10<head> 11 <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 12 <title>Ruby erb</title> 13</head> 14<body> 15 16<%= str1 %><br /> 17 18ループ<br /> 19<% (1..3).each do |x| %> 20 <%= x %> 回<br /> 21<% end %> 22 23 24</body> 25</html> 26EOM 27 28erb = ERB.new(contents) 29puts erb.result(binding)
(やり方間違ってたらご指摘ください)
書いてみて思うのは。構文としてCGIの方が綺麗じゃね?ってことと
ERBってPHPとかASPとかJSPっぽいやり方だと思うんだけど、
全部のページの最初と最後に
Ruby
1 2#!/usr/bin/ruby 3 4require 'erb' 5contents = <<EOM 6〜〜〜 7EOM 8 9erb = ERB.new(contents) 10puts erb.result(binding)
って書かないのいけないのかなぁ・・・?
それと動きとしてCGIと一緒だろうからこれじゃちょっとねと思ったわけです。
けど多分 mod_ruby使えば、モジュールとして動いて、PHPっぽく書けて
ヒアドキュメントもきっと要らなくなるんだろうと思ったんですが
検索してみるとmod_rubyの情報自体が古いものしか無く、あれ?もう死んだ?みたいな感じです。
mod_railsと呼ばれる Phusion Passenger というものも知りましたが、まぁこれは、Railsやりだしてからでいいです。
で、何が聞きたいかというと、Railsのようなフレームワークを使わずに
素のRubyでWebコンテンツ作りたい時に、CGIじゃなくてそこそこの速度が期待出来るやり方の
最近のトレンドはなんですか?ということです。
一発お答えいただくのもいいですが、上記のようなことも踏まえたここ10年位の
Ruby界隈の流れも教えて頂けると幸いです。
では、Rubyistの皆様、そうじゃない方々も
ご回答よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/20 01:55
2016/07/20 05:17