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