Some cosmetic fixes in ANFANG
[dbsrgits/DBIx-Class.git] / maint / gen_pod_inherit
CommitLineData
3d4c5a84 1#!/usr/bin/env perl
2
3use warnings;
4use strict;
5
445d17c8 6use DBIx::Class::_Util; # load early in case any shims are needed
7
3d4c5a84 8my $lib_dir = 'lib';
95252a8c 9my $pod_dir = 'maint/.Generated_Pod';
3d4c5a84 10
a0c96f24 11my $result_metapod_fn = "$lib_dir/DBIx/Class/Manual/ResultClass.pod";
12
3d4c5a84 13die "POD generator must be executed from the dist root\n"
14 unless -d $lib_dir and -d $pod_dir;
15
a0c96f24 16require File::Copy;
17File::Copy::copy(
18 "$result_metapod_fn.proto",
19 "$result_metapod_fn",
3e2a5d5d 20) or die "Copying ResultClass proto pod ($result_metapod_fn) failed: $!";
a0c96f24 21
22# cleanup
23END {
24 local ($@, $!, $?);
25 unlink $result_metapod_fn;
26}
27
3d4c5a84 28require Pod::Inherit;
29
30Pod::Inherit->new({
31 input_files => $lib_dir,
3e2a5d5d 32 out_dir => "$pod_dir/lib",
3d4c5a84 33 force_permissions => 1,
34 class_map => {
35 "DBIx::Class::Relationship::HasMany" => "DBIx::Class::Relationship",
36 "DBIx::Class::Relationship::HasOne" => "DBIx::Class::Relationship",
37 "DBIx::Class::Relationship::BelongsTo" => "DBIx::Class::Relationship",
38 "DBIx::Class::Relationship::ManyToMany" => "DBIx::Class::Relationship",
39 "DBIx::Class::ResultSourceProxy" => "DBIx::Class::ResultSource",
40 },
41 # skip the deprecated classes that give out *DEPRECATED* warnings
42 skip_classes => [ qw(
43 lib/DBIx/Class/Storage/DBI/Sybase/MSSQL.pm
44 lib/DBIx/Class/Serialize/Storable.pm
45 lib/DBIx/Class/ResultSetManager.pm
46 lib/DBIx/Class/InflateColumn/File.pm
47 lib/DBIx/Class/DB.pm
48 lib/DBIx/Class/CDBICompat/
49 lib/DBIx/Class/CDBICompat.pm
399b9455 50 lib/DBIx/Class/_TempExtlib/
3d4c5a84 51 ),
52 # skip the ::Storage:: family for now
53 qw(
54 lib/DBIx/Class/Storage/
55 lib/DBIx/Class/Storage.pm
56 ),
57 '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
58 'lib/DBIx/Class/Relationship.pm', # it already documents its own inheritors
59 'lib/DBIx/Class/Core.pm', # we actually don't want this populated in favor of redirecting users to the ResultClass docs
60 'lib/DBIx/Class/Optional/Dependencies.pm' # the POD is already auto-generated
61 ],
62 # these appear everywhere, and are typically lower-level methods not used by the general user
63 skip_inherits => [ qw/
64 DBIx::Class
65 DBIx::Class::Componentised
66 Class::C3::Componentised
67 DBIx::Class::AccessorGroup
68 Class::Accessor::Grouped
69 Moose::Object
70 Exporter
71 / ],
72 force_inherits => {
73 'DBIx::Class::Manual::ResultClass' => 'DBIx::Class::Core', # this forces the contents of ::Core to be dumped into the POD doc for ::ResultClass
74 },
75 dead_links => '',
76 method_format => 'L<%m|%c/%m>',
77 #debug => 1,
78})->write_pod;
79
80# important - write_pod returns undef >.<
811;