2001-04-10 (Tue)
_ mod_ruby
mod_rubyで、Rubyでリクエストハンドラを書けるようにしてcvsにcommitした。
# cat.rb require "singleton" class Cat include Singleton def handler(r) begin body = open(r.filename).read r.content_type = "text/plain" r.send_http_header r.print(body) return Apache::OK rescue Errno::ENOENT return Apache::NOT_FOUND rescue Errno::EACCES return Apache::FORBIDDEN rescue return Apache::SERVER_ERROR end end end
みたいなスクリプトを書いといて、httpd.confで、
RubyAddPath /home/shugo/ruby RubyRequire cat <Location /cat> SetHandler ruby-object RubyHandler Cat.instance </Location>
なんて設定をしておくと、/cat/以下にアクセスした場合はCat#handlerが呼ばれる。 別にSingleton使わなくても、Object.newして特異メソッド定義するだけでもいいけど。
後は他のハンドラも定義できるようにしなきゃな。
_ mod_rd2html.rb
ちょっと実用的なモジュールをRubyで書いてみたり。 これはRDをHTMLに変換するモジュール。
# mod_rd2html.rb require "singleton" require "rd/rdfmt" require "rd/rd2html-lib" class RD2HTML include Singleton def handler(r) begin open(r.filename) do |f| tree = RD::RDTree.new(f) visitor = RD::RD2HTMLVisitor.new r.content_type = "text/html" r.send_http_header r.print(visitor.visit(tree)) return Apache::OK end rescue Errno::ENOENT return Apache::NOT_FOUND rescue Errno::EACCES return Apache::FORBIDDEN rescue return Apache::SERVER_ERROR end end end
たとえば、httpd.confで、
RubyRequire mod_rd2html <Location /rd> SetHandler ruby-object RubyHandler RD2HTML.instance </Location>
なんて設定をすると、http://www.foo.org/rd/foo.rdでfoo.rdをRDに変換した結果が 見られるわけ。 ERbを使うモジュールなんかも簡単にできそうだな。
2005-04-10 (Sun)
_ ruby-prof-0.2
バグフィックスのみ。
Debian sidな人は、以下のapt-lineでapt-get install libprof-ruby1.8できます:)
deb http://shugo.net/debian/libprof-ruby ./
2012-04-10 (Tue)
_ 千手院の枝垂れ桜
ちょっと仕事をさぼってバイクで千住院の枝垂れ桜を見に行ってきた。会社からは5分ほど。 桜を眺めながら抹茶をいただいてきた。
寺までの坂道にはソメイヨシノも植えられていて、桜ごしに松江城を望むことができた。