monolithic kernel

Google Chromeのtextareaを外部エディタで編集する (Ruby版)

現在KAYA Satoshi氏がGitHub上でRack対応を行ったバージョンを公開されていますので、そちらを利用されることをおすすめします。

自分のPCにはPerlがインストールされていないので、Rubyで書いてみました。Perlは分からないので勘で移植しましたが、一応動作しているようです。対象バージョンは1.8系のつもりです。動作確認はmswin32の1.8.7で行いました。

#!/usr/bin/ruby
require 'webrick'
require 'tempfile'

$EDITOR = 'C:\vim\gvim.exe'
$PORT = 9292

server = WEBrick::HTTPServer.new(:Port => $PORT)

trap('INT') { server.shutdown }

server.mount_proc('/status') do |req, res|
  res.status = 200
end

server.mount_proc('/edit') do |req, res|
  temp = Tempfile.new('editwith_')
  temp << req.body
  temp.close false

  system $EDITOR, temp.path

  temp.open
  res.body = temp.read
  temp.close

  res.status = 200
  res['Content-Type'] = 'text/plain'
  res['Content-Length'] = res.body.size
end

server.start

$EDITOR$PORTを適切に設定すれば動作するんじゃないかと思います。

追記

  • 2010/06/02
    • KAYA Satoshi氏のGitHubへのリンクを追加
    • 文字化けおよび入力した半角カタカナが全角に変換される不具合を修正