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分ほど。 桜を眺めながら抹茶をいただいてきた。
寺までの坂道にはソメイヨシノも植えられていて、桜ごしに松江城を望むことができた。
[ツッコミを入れる]


