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;
}