Born Too Late

Yuya's old tech blog.

.htaccess を Ruby の DSL で記述してみる

2011-03-29 21:39:22

最近 .htaccess をいじることが多いんですが, 融通効かないなと思うことが多々あります.

.htaccess を Ruby で書くことができれば... ということでとりあえずプロトタイプ程度ですが作ってみました.

DSL の記述例

これが以下のように出力されます.

<IfModule mod_rewrite.c>
  RewriteEngine on
  <Limit GET>
    RewriteRule ^/user/(.*)$ /user.cgi?id=$1 [L,R]
  </Limit>
</IfModule>
Order Deny,Allow
Deny from All
Allow from 192.168.0.11
Allow from 192.168.0.12
Allow from 192.168.0.13
Allow from 192.168.0.14
Allow from 192.168.0.15

この .htaccess 自体はあまり気にしないでください.
DSL の構文を紹介するために適当に書いてます.

この DSL を実行するのに必要なプログラム, 使い方は以下の Gist をご覧ください.
DSL to write .htaccess files.

特徴

あくまでもプロトタイプなので, 全然実用レベルでは無いですが, 洗練させればなかなかおもしろいものになるんでしょうか.

DSL を作るためのノウハウが足りないので, いいアイディアをお持ちの方は, 是非 @yuya_takeyama まで教えてください.
とりあえずは dsl { ~~~ } を省略できるようにしたい...