Update manifest.
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / DB.pm
1 package DBIx::Class::DB;
2
3 use base qw/Class::Data::Inheritable/;
4 use DBIx::Class::Storage::DBI;
5 use DBIx::Class::ClassResolver::PassThrough;
6 use DBI;
7
8 =head1 NAME 
9
10 DBIx::Class::DB - Simple DBIx::Class Database connection by class inheritance
11
12 =head1 SYNOPSIS
13
14   package MyDB;
15
16   use base qw/DBIx::Class/;
17   __PACKAGE__->load_components('DB');
18
19   __PACKAGE__->connection('dbi:...', 'user', 'pass', \%attrs);
20
21   package MyDB::MyTable;
22
23   use base qw/MyDB/;
24   __PACKAGE__->load_components('Core');
25
26   ...
27
28 =head1 DESCRIPTION
29
30 This class provides a simple way of specifying a database connection.
31
32 =head1 METHODS
33
34 =over 4
35
36 =cut
37
38 __PACKAGE__->mk_classdata('storage');
39 __PACKAGE__->mk_classdata('class_resolver' =>
40                             'DBIx::Class::ClassResolver::PassThrough');
41
42 =item connection
43
44   __PACKAGE__->connection($dsn, $user, $pass, $attrs);
45
46 Specifies the arguments that will be passed to DBI->connect(...) to
47 instantiate the class dbh when required.
48
49 =cut
50
51 sub connection {
52   my ($class, @info) = @_;
53   my $storage = DBIx::Class::Storage::DBI->new;
54   $storage->connect_info(\@info);
55   $class->storage($storage);
56 }
57
58 =item dbi_commit
59
60   $class->dbi_commit;
61
62 Issues a commit again the current dbh
63
64 =cut
65
66 sub dbi_commit { $_[0]->storage->commit; }
67
68 =item dbi_rollback
69
70   $class->dbi_rollback;
71
72 Issues a rollback again the current dbh
73
74 =cut
75
76 sub dbi_rollback { $_[0]->storage->rollback; }
77
78 sub resolve_class { return shift->class_resolver->class(@_); }
79
80 1;
81
82 =back
83
84 =head1 AUTHORS
85
86 Matt S. Trout <mst@shadowcatsystems.co.uk>
87
88 =head1 LICENSE
89
90 You may distribute this code under the same terms as Perl itself.
91
92 =cut
93