Kwalify のスキーマ定義を POD に書いてる
App::MadEye の Plugin は、Kwalify のスキーマ定義を POD に書いてて、plugin 使用時に設定のスキーマが合ってるかどうか判定してる。
これは何かに使えそうなのでメモ。
App::MadEye::Util の get_schema_from_pod メソッドが該当クラスから Pod::POM で parse して、SCHEMA セクションを抜き出してる。
sub get_schema_from_pod { my $target = shift; my $proto = ref $target || $target; my $parser = Pod::POM->new; my $pom = $parser->parse(Class::Inspector->resolved_filename($proto)); if (my $schema_node = first { $_->title eq 'SCHEMA' } $pom->head1) { my $schema_content = $schema_node->content; $schema_content =~ s/^ //gm; my $schema = YAML::Load($schema_content); return $schema; } else { return; # 404 schema not found. } }