YAMLに~/とか~USER/とか書けるようにするパッチ
YAMLのassets_pathとかplugin_pathとかincludeにはパスを書くわけなんですが、~とか~USERの展開をしてくれないみたい。
展開してくれないと何が不便か?
ひとつの環境で使ってるぶんにはいいんだけど、こんなとき
に、YAMLを使い回すのがめんどい。パスを書き換えないといけないので。
あと、
というのもあるかも。
というわけで、「~/etc」や「~hirose31/etc」を「/home/hirose31/etc」に展開してくれる(かなり強引な)パッチをこさえてみた。
--- Plagger/ConfigLoader.pm.orig 2006-08-22 12:55:49.000000000 +0900 +++ Plagger/ConfigLoader.pm 2006-08-31 01:30:42.000000000 +0900 @@ -2,6 +2,8 @@ use strict; use Carp; use Plagger::Walker; +use File::HomeDir; +use Data::Dumper; sub new { my $class = shift; @@ -27,6 +29,10 @@ Plagger::Walker->decode_utf8($config); } + my $config_dumped = Data::Dumper->new([$config],[qw(config)])->Indent(0)->Quotekeys(1)->Dump; + $config_dumped =~ s{'~([^/]+)?}{"'".File::HomeDir->home($1||())}ge; + eval $config_dumped; + return $config; }