summaryrefslogtreecommitdiff
path: root/perl/Wallet/Database.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl/Wallet/Database.pm')
-rw-r--r--perl/Wallet/Database.pm123
1 files changed, 0 insertions, 123 deletions
diff --git a/perl/Wallet/Database.pm b/perl/Wallet/Database.pm
deleted file mode 100644
index 031be9e..0000000
--- a/perl/Wallet/Database.pm
+++ /dev/null
@@ -1,123 +0,0 @@
-# Wallet::Database -- Wallet system database connection management.
-#
-# This module is a thin wrapper around DBIx::Class to handle determination
-# of the database configuration settings automatically on connect. The
-# intention is that Wallet::Database objects can be treated in all respects
-# like DBIx::Class objects in the rest of the code.
-#
-# Written by Russ Allbery <eagle@eyrie.org>
-# Copyright 2008, 2009, 2010, 2012, 2013
-# The Board of Trustees of the Leland Stanford Junior University
-#
-# See LICENSE for licensing terms.
-
-##############################################################################
-# Modules and declarations
-##############################################################################
-
-package Wallet::Database;
-require 5.006;
-
-use strict;
-use vars qw(@ISA $VERSION);
-
-use Wallet::Schema;
-use Wallet::Config;
-
-@ISA = qw(Wallet::Schema);
-
-# This version should be increased on any code change to this module. Always
-# use two digits for the minor version with a leading zero if necessary so
-# that it will sort properly.
-$VERSION = '0.04';
-
-##############################################################################
-# Core overrides
-##############################################################################
-
-# Override DBI::connect to supply our own connect string, username, and
-# password and to set some standard options. Takes no arguments other than
-# the implicit class argument.
-sub connect {
- my ($class) = @_;
- unless ($Wallet::Config::DB_DRIVER
- and (defined ($Wallet::Config::DB_INFO)
- or defined ($Wallet::Config::DB_NAME))) {
- die "database connection information not configured\n";
- }
- my $dsn = "DBI:$Wallet::Config::DB_DRIVER:";
- if (defined $Wallet::Config::DB_INFO) {
- $dsn .= $Wallet::Config::DB_INFO;
- } else {
- $dsn .= "database=$Wallet::Config::DB_NAME";
- $dsn .= ";host=$Wallet::Config::DB_HOST" if $Wallet::Config::DB_HOST;
- $dsn .= ";port=$Wallet::Config::DB_PORT" if $Wallet::Config::DB_PORT;
- }
- my $user = $Wallet::Config::DB_USER;
- my $pass = $Wallet::Config::DB_PASSWORD;
- my %attrs = (PrintError => 0, RaiseError => 1);
- my $dbh = eval { $class->SUPER::connect ($dsn, $user, $pass, \%attrs) };
- if ($@) {
- die "cannot connect to database: $@\n";
- }
- return $dbh;
-}
-
-1;
-__END__
-
-##############################################################################
-# Documentation
-##############################################################################
-
-=head1 NAME
-
-Wallet::Dabase - Wrapper module for wallet database connections
-
-=for stopwords
-DBI RaiseError PrintError AutoCommit Allbery
-
-=head1 SYNOPSIS
-
- use Wallet::Database;
- my $dbh = Wallet::Database->connect;
-
-=head1 DESCRIPTION
-
-Wallet::Database is a thin wrapper module around DBI that takes care of
-building a connect string and setting database options based on wallet
-configuration. The only overridden method is connect(). All other
-methods should work the same as in DBI and Wallet::Database objects should
-be usable exactly as if they were DBI objects.
-
-connect() will obtain the database connection information from the wallet
-configuration; see L<Wallet::Config> for more details. It will also
-automatically set the RaiseError attribute to true and the PrintError and
-AutoCommit attributes to false, matching the assumptions made by the
-wallet database code.
-
-=head1 CLASS METHODS
-
-=over 4
-
-=item connect()
-
-Opens a new database connection and returns the database object. On any
-failure, throws an exception. Unlike the DBI method, connect() takes no
-arguments; all database connection information is derived from the wallet
-configuration.
-
-=back
-
-=head1 SEE ALSO
-
-DBI(3), Wallet::Config(3)
-
-This module is part of the wallet system. The current version is
-available from L<http://www.eyrie.org/~eagle/software/wallet/>.
-
-=head1 AUTHOR
-
-Russ Allbery <eagle@eyrie.org>
-
-=cut