Version 1 (modified by cho45, 7 years ago)

--

CocProxy

めんどくさいことしない置換プロキシー

使い方

  1. http://svn.coderepos.org/share/lang/ruby/cocproxy/proxy.rb をダウンロード
  2. `files' というディレクトリをつくる
  3. 置換したいファイルをてきとうにつっこむ
  4. ruby proxy.rb
  5. ポートとか表示されるのでブラウザの設定を変える

デフォルトだと、

  1. #{File.basename(req.path_info)}",
  2. #{req.host}#{req.path_info}",
  3. #{req.host}/#{File.basename(req.path_info)}",
  4. .#{req.path_info}",

がスキャンされ、ヒットしたら置換される。

例えば、http://example.com/test/foo/bar.css にアクセスすると

  1. files/bar.css
  2. files/example.com/test/foo/bar.css
  3. files/example.com/bar.css
  4. files/test/foo/bar.css

が順にスキャンされ、最初に発見されたファイルが置換されブラウザに返される。

部分置換

正規表現により部分的に置換することもできる。

http://example.com/hoge.html というファイルの style 要素を置換したければ、 ルールにヒットするファイルに

proxy-replace: <style type="text/css">¥s*<!--([^<]+)-->¥s*</style>

などと書き、さらに置換したい内容を書けば良い。 指定した正規表現のキャプチャのうち、第一番目のキャプチャが該当ファイルの内容で 置換される。

この場合置換後のファイルでは proxy-replace 以降、行末までは削除されるため、 proxy-replace のあとを HTML エスケープなどする必要はない。

さらに

proxy.rb はカレントディレクトリの proxy-config.yaml を設定として読みこむ、 このファイルはなくてもよいが、使用することで設定を上書きできる。

また、double_screen.rb というファイルが require できればそれをロードする。 double_screen.rb は標準出力と標準エラー出力を左右にわけて表示するもので、 使用することで、プロキシの動作が読み易くなる。

Download / Repos.

1ファイル完結版

全部

Principles

  • 基本的に1つのファイルで完結すること
  • ruby1.9 メイン
  • 標準ライブラリで動くこと

Ref.

License

Public Domain