Commit | Line | Data |
3d4c5a84 |
1 | #!/usr/bin/env perl |
2 | |
3 | use warnings; |
4 | use strict; |
5 | |
445d17c8 |
6 | use DBIx::Class::_Util; # load early in case any shims are needed |
7 | |
3d4c5a84 |
8 | my $lib_dir = 'lib'; |
95252a8c |
9 | my $pod_dir = 'maint/.Generated_Pod'; |
3d4c5a84 |
10 | |
a0c96f24 |
11 | my $result_metapod_fn = "$lib_dir/DBIx/Class/Manual/ResultClass.pod"; |
12 | |
3d4c5a84 |
13 | die "POD generator must be executed from the dist root\n" |
14 | unless -d $lib_dir and -d $pod_dir; |
15 | |
a0c96f24 |
16 | require File::Copy; |
17 | File::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 |
23 | END { |
24 | local ($@, $!, $?); |
25 | unlink $result_metapod_fn; |
26 | } |
27 | |
3d4c5a84 |
28 | require Pod::Inherit; |
29 | |
30 | Pod::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 >.< |
81 | 1; |