1######################################################################### 2##################### A U T O G E N E R A T E D ######################## 3######################################################################### 4# 5# The contents of this POD file are auto-generated. Any changes you make 6# will be lost. If you need to change the generated text edit _gen_pod() 7# at the end of DBIx/Class/Optional/Dependencies.pm 8# 9 10 11=head1 NAME 12 13DBIx::Class::Optional::Dependencies - Optional module dependency specifications (for module authors) 14 15=head1 SYNOPSIS 16 17Somewhere in your build-file (e.g. L<Module::Install>'s Makefile.PL): 18 19 ... 20 21 configure_requires 'DBIx::Class' => '0.082842'; 22 23 require DBIx::Class::Optional::Dependencies; 24 25 my $deploy_deps = DBIx::Class::Optional::Dependencies->req_list_for('deploy'); 26 27 for (keys %$deploy_deps) { 28 requires $_ => $deploy_deps->{$_}; 29 } 30 31 ... 32 33Note that there are some caveats regarding C<configure_requires()>, more info 34can be found at L<Module::Install/configure_requires> 35 36 37=head1 DESCRIPTION 38 39Some of the less-frequently used features of L<DBIx::Class> have external 40module dependencies on their own. In order not to burden the average user 41with modules he will never use, these optional dependencies are not included 42in the base Makefile.PL. Instead an exception with a descriptive message is 43thrown when a specific feature is missing one or several modules required for 44its operation. This module is the central holding place for the current list 45of such dependencies, for DBIx::Class core authors, and DBIx::Class extension 46authors alike. 47 48 49=head1 CURRENT REQUIREMENT GROUPS 50 51Dependencies are organized in C<groups> and each group can list one or more 52required modules, with an optional minimum version (or 0 for any version). 53The group name can be used in the 54 55 56=head2 DBIx::Class::Admin 57 58Modules required for the DBIx::Class administrative library 59 60=over 61 62=item * JSON::Any >= 1.23 63 64=item * Moose >= 0.98 65 66=item * MooseX::Types >= 0.21 67 68=item * MooseX::Types::JSON >= 0.02 69 70=item * MooseX::Types::LoadableClass >= 0.011 71 72=item * MooseX::Types::Path::Class >= 0.05 73 74=back 75 76Requirement group: B<admin> 77 78=head2 dbicadmin 79 80Modules required for the CLI DBIx::Class interface dbicadmin 81 82=over 83 84=item * Getopt::Long::Descriptive >= 0.081 85 86=item * JSON::Any >= 1.23 87 88=item * Moose >= 0.98 89 90=item * MooseX::Types >= 0.21 91 92=item * MooseX::Types::JSON >= 0.02 93 94=item * MooseX::Types::LoadableClass >= 0.011 95 96=item * MooseX::Types::Path::Class >= 0.05 97 98=item * Text::CSV >= 1.16 99 100=back 101 102Requirement group: B<admin_script> 103 104=head2 Storage::DBI::deploy() 105 106Modules required for L<DBIx::Class::Storage::DBI/deployment_statements> and L<DBIx::Class::Schema/deploy> 107 108=over 109 110=item * SQL::Translator >= 0.11018 111 112=back 113 114Requirement group: B<deploy> 115 116=head2 Sybase ASE support 117 118Modules required to connect to Sybase ASE 119 120=over 121 122=item * DBD::Sybase 123 124=back 125 126Requirement group: B<rdbms_ase> 127 128=head2 DB2 support 129 130Modules required to connect to DB2 131 132=over 133 134=item * DBD::DB2 135 136=back 137 138Requirement group: B<rdbms_db2> 139 140=head2 DB2 on AS/400 support 141 142Modules required to connect to DB2 on AS/400 143 144=over 145 146=item * DBD::ODBC 147 148=back 149 150Requirement group: B<rdbms_db2_400> 151 152=head2 Firebird support 153 154Modules required to connect to Firebird 155 156=over 157 158=item * DBD::Firebird 159 160=back 161 162Requirement group: B<rdbms_firebird> 163 164=head2 Firebird support via DBD::InterBase 165 166Modules required to connect to Firebird via DBD::InterBase 167 168=over 169 170=item * DBD::InterBase 171 172=back 173 174Requirement group: B<rdbms_firebird_interbase> 175 176=head2 Firebird support via DBD::ODBC 177 178Modules required to connect to Firebird via DBD::ODBC 179 180=over 181 182=item * DBD::ODBC 183 184=back 185 186Requirement group: B<rdbms_firebird_odbc> 187 188=head2 Informix support 189 190Modules required to connect to Informix 191 192=over 193 194=item * DBD::Informix 195 196=back 197 198Requirement group: B<rdbms_informix> 199 200=head2 MS Access support via DBD::ADO (Windows only) 201 202Modules required to connect to MS Access via DBD::ADO. This particular DBD is available on Windows only 203 204=over 205 206=item * DBD::ADO 207 208=back 209 210Requirement group: B<rdbms_msaccess_ado> 211 212=head2 MS Access support via DBD::ODBC 213 214Modules required to connect to MS Access via DBD::ODBC 215 216=over 217 218=item * DBD::ODBC 219 220=back 221 222Requirement group: B<rdbms_msaccess_odbc> 223 224=head2 MSSQL support via DBD::ADO (Windows only) 225 226Modules required to connect to MSSQL via DBD::ADO. This particular DBD is available on Windows only 227 228=over 229 230=item * DBD::ADO 231 232=back 233 234Requirement group: B<rdbms_mssql_ado> 235 236=head2 MSSQL support via DBD::ODBC 237 238Modules required to connect to MSSQL via DBD::ODBC 239 240=over 241 242=item * DBD::ODBC 243 244=back 245 246Requirement group: B<rdbms_mssql_odbc> 247 248=head2 MSSQL support via DBD::Sybase 249 250Modules required to connect to MSSQL via DBD::Sybase 251 252=over 253 254=item * DBD::Sybase 255 256=back 257 258Requirement group: B<rdbms_mssql_sybase> 259 260=head2 MySQL support 261 262Modules required to connect to MySQL 263 264=over 265 266=item * DBD::mysql 267 268=back 269 270Requirement group: B<rdbms_mysql> 271 272=head2 Oracle support 273 274Modules required to connect to Oracle 275 276=over 277 278=item * DBD::Oracle 279 280=item * Math::Base36 >= 0.07 281 282=item * Math::BigInt >= 1.80 283 284=back 285 286Requirement group: B<rdbms_oracle> 287 288=head2 PostgreSQL support 289 290Modules required to connect to PostgreSQL 291 292=over 293 294=item * DBD::Pg 295 296=back 297 298Requirement group: B<rdbms_pg> 299 300=head2 SQLAnywhere support 301 302Modules required to connect to SQLAnywhere 303 304=over 305 306=item * DBD::SQLAnywhere 307 308=back 309 310Requirement group: B<rdbms_sqlanywhere> 311 312=head2 SQLAnywhere support via DBD::ODBC 313 314Modules required to connect to SQLAnywhere via DBD::ODBC 315 316=over 317 318=item * DBD::ODBC 319 320=back 321 322Requirement group: B<rdbms_sqlanywhere_odbc> 323 324=head2 SQLite support 325 326Modules required to connect to SQLite 327 328=over 329 330=item * DBD::SQLite 331 332=back 333 334Requirement group: B<rdbms_sqlite> 335 336=head2 Storage::Replicated 337 338Modules required for L<DBIx::Class::Storage::DBI::Replicated> 339 340=over 341 342=item * Clone 343 344=item * Moose >= 0.98 345 346=item * MooseX::Types >= 0.21 347 348=item * MooseX::Types::LoadableClass >= 0.011 349 350=back 351 352Requirement group: B<replicated> 353 354=head1 METHODS 355 356=head2 req_group_list 357 358=over 359 360=item Arguments: none 361 362=item Return Value: \%list_of_requirement_groups 363 364=back 365 366This method should be used by DBIx::Class packagers, to get a hashref of all 367dependencies keyed by dependency group. Each key (group name) can be supplied 368to one of the group-specific methods below. 369 370 371=head2 req_list_for 372 373=over 374 375=item Arguments: $group_name 376 377=item Return Value: \%list_of_module_version_pairs 378 379=back 380 381This method should be used by DBIx::Class extension authors, to determine the 382version of modules a specific feature requires in the B<current> version of 383DBIx::Class. See the L</SYNOPSIS> for a real-world 384example. 385 386 387=head2 req_ok_for 388 389=over 390 391=item Arguments: $group_name 392 393=item Return Value: 1|0 394 395=back 396 397Returns true or false depending on whether all modules required by 398C<$group_name> are present on the system and loadable. 399 400 401=head2 req_missing_for 402 403=over 404 405=item Arguments: $group_name 406 407=item Return Value: $error_message_string 408 409=back 410 411Returns a single line string suitable for inclusion in larger error messages. 412This method would normally be used by DBIx::Class core-module author, to 413indicate to the user that he needs to install specific modules before he will 414be able to use a specific feature. 415 416For example if some of the requirements for C<deploy> are not available, 417the returned string could look like: 418 419 SQL::Translator >= 0.11018 (see DBIx::Class::Optional::Dependencies for details) 420 421The author is expected to prepend the necessary text to this message before 422returning the actual error seen by the user. 423 424 425=head2 die_unless_req_ok_for 426 427=over 428 429=item Arguments: $group_name 430 431=back 432 433Checks if L</req_ok_for> passes for the supplied C<$group_name>, and 434in case of failure throws an exception including the information 435from L</req_missing_for>. 436 437 438=head2 req_errorlist_for 439 440=over 441 442=item Arguments: $group_name 443 444=item Return Value: \%list_of_loaderrors_per_module 445 446=back 447 448Returns a hashref containing the actual errors that occurred while attempting 449to load each module in the requirement group. 450 451 452=head1 FURTHER QUESTIONS? 453 454Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>. 455 456=head1 COPYRIGHT AND LICENSE 457 458This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE> 459by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can 460redistribute it and/or modify it under the same terms as the 461L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>. 462 463