Ruby を知らない人に Ruby の話をして欲しいと言われてないけど、ブログを書きました。(*1)
難しい話は抜きにしたいんだけど、抜きにしちゃうとまったく訳わかんないから簡単に説明する。
今回は Ruby の erb ってのを使って元ネタ同様のことを実現する。
mod_ruby が動くサーバなんて自分でつくらないとないだろうけど、
その辺はどうにかしてもらう。
erubyが導入されていれば、ファイルの1行目に #!/usr/bin/eruby -McKuCutf-8 とする。(*2)
そんなこんなで、どうにかしてもらったら、 <%= と %> で囲めば動きます。
どうにかしてもらったサーバで example.html というファイルの拡張子を example.rhtml すれば良いだけです。
<%= Rubyスクリプト %>
拡張子を変えずに動かすこともできます。 .html ファイルでも Ruby を使いたい場合は .htaccess ファイルに以下のように書けば良いだけ。サーバーによってはこれを禁止してたり、少しやり方が違う場合がありますが、大体動くので、どうにかしてもらった人に言ってください。
AddType application/x-httpd-eruby .rhtml .html
フレームの代わりに Ruby を使うってのがないので、参考になるのはありません。
致し方ないので、フレームの代わりにPHPを使うを参考にしてください。
ついでに Ruby を少しでも使えるようになれば、こんなことができるという一例を紹介します。
コピーライトの西暦を自動更新
Ruby を使えばページフッタの西暦も自動更新します。
Copyright (c) 20010-<%= Time.now.strftime("%Y") %> Weble inc. All Rights Reserved.
自分の年齢を自動更新
Ruby を使えば自分の年齢を自動更新して表示できます。
<%= (Time.now.strftime("%Y%m%d").to_i - 19900605) / 10000 %>歳
ページの部品を読み込む
Ruby を使えばページ内に部品を読み込むことができます。
<%= require 'footer.html' %>
これを応用すれば以下のようにしてフッタとヘッダを同期できますよ。
<%= require 'header.html' %>
<div id="contents">
テキストテキストテキスト
</div>
<%= require 'footer.html' %>
他人のサイトの内容を読み込む
<%=
require 'open-uri'
open("http://google.com/") do |f|
f.each do |line|
puts line
end
end
%>
複数のメッセージをランダムに表示
<%=
if RUBY_VERSION < '1.9.0'
class Array
def choice
at( rand( size ) )
end
end
end
message = ["メッセージA", "メッセージB", "メッセージC", "メッセージD", "メッセージE"]
message.choice
%>
指定した月のカレンダーを出力
少し長いですが、2010年12月のカレンダーを出力します。(*3)
<%=
require 'date'
def calendar(year, month)
jpweek = ['日', '月', '火', '水', '木', '金', '土']
date = DateTime::new(year, month, 1)
date = (date >> 1) - 1
days = date.day
one = Date::new(year,month,1)
week = one.wday
day = Array.new(42)
days.times{|i|
day[week + i] = i + 1
}
calendar = '<table><tr>'
jpweek.each{ |i|
calendar << '<th>' + i.to_s + '</th>'
}
calendar << '</tr>'
key = 0
day.each{|i|
if key.to_i % 7 == 0 then
calendar << '<tr>'
end
calendar << '<td>'
if i != nil
calendar << i.to_s
else
calendar << ' '
end
if key.to_i % 7 == 6
calendar << '</tr>'
end
key += 1
}
calendar << '</table>'
return calendar;
end
print calendar(2010, 12)
%>
以上のように結構便利なものがあります。コピーして貼りつけても大体のサーバーで動きますのでどうぞ。
本当はサーバーで動かす前に自分のパソコンでテストした方が良いんですけど、興味のある方はぜひ以下の記事をご覧ください。
できる限り、PHP っぽく Ruby を書いてみました… orz
この記事の原因になった下記の記事もよろしくお願いします。
Rubyに興味を持った方はこちらがおすすめです。ほんとにたのしめる内容です。
高橋 征義¥ 2,730
|
追記:この記事をもっと Ruby っぽく書いていただけました。そしていろいろ間違っていたところを指摘していただけました。ありがとうございます。
5分でわかる Ruby を知らない人が Ruby の便利さを学べる記事をかいたよ を勝手に改造 – yayuguのにっき