b7adc1425938eb435c11e26a13d5f2e0575a0a83
[dbsrgits/DBIx-Class.git] / maint / gen_pod_inherit
1 #!/usr/bin/env perl
2
3 use warnings;
4 use strict;
5
6 my $lib_dir = 'lib';
7 my $pod_dir = '.generated_pod';
8
9 die "POD generator must be executed from the dist root\n"
10   unless -d $lib_dir and -d $pod_dir;
11
12 require Pod::Inherit;
13
14 Pod::Inherit->new({
15    input_files       => $lib_dir,
16    out_dir           => $pod_dir,
17    force_permissions => 1,
18    class_map         => {
19       "DBIx::Class::Relationship::HasMany"    => "DBIx::Class::Relationship",
20       "DBIx::Class::Relationship::HasOne"     => "DBIx::Class::Relationship",
21       "DBIx::Class::Relationship::BelongsTo"  => "DBIx::Class::Relationship",
22       "DBIx::Class::Relationship::ManyToMany" => "DBIx::Class::Relationship",
23       "DBIx::Class::ResultSourceProxy"        => "DBIx::Class::ResultSource",
24    },
25    # skip the deprecated classes that give out *DEPRECATED* warnings
26    skip_classes      => [ qw(
27       lib/DBIx/Class/Storage/DBI/Sybase/MSSQL.pm
28       lib/DBIx/Class/Serialize/Storable.pm
29       lib/DBIx/Class/ResultSetManager.pm
30       lib/DBIx/Class/InflateColumn/File.pm
31       lib/DBIx/Class/DB.pm
32       lib/DBIx/Class/CDBICompat/
33       lib/DBIx/Class/CDBICompat.pm
34    ),
35    # skip the ::Storage:: family for now
36    qw(
37       lib/DBIx/Class/Storage/
38       lib/DBIx/Class/Storage.pm
39    ),
40       'lib/DBIx/Class/Storage/DBI/Replicated/Pool.pm',  # this one just errors out with: The 'add_attribute' method cannot be called on an immutable instance
41       'lib/DBIx/Class/Relationship.pm',                 # it already documents its own inheritors
42       'lib/DBIx/Class/Core.pm',                         # we actually don't want this populated in favor of redirecting users to the ResultClass docs
43       'lib/DBIx/Class/Optional/Dependencies.pm'         # the POD is already auto-generated
44    ],
45    # these appear everywhere, and are typically lower-level methods not used by the general user
46    skip_inherits     => [ qw/
47       DBIx::Class
48       DBIx::Class::Componentised
49       Class::C3::Componentised
50       DBIx::Class::AccessorGroup
51       Class::Accessor::Grouped
52       Moose::Object
53       Exporter
54    / ],
55    force_inherits    => {
56       'DBIx::Class::Manual::ResultClass' => 'DBIx::Class::Core',  # this forces the contents of ::Core to be dumped into the POD doc for ::ResultClass
57    },
58    dead_links        => '',
59    method_format     => 'L<%m|%c/%m>',
60    #debug => 1,
61 })->write_pod;
62
63 # important - write_pod returns undef >.<
64 1;