################################################################################ # WeBWorK mod_perl (c) 1995-2002 WeBWorK Team, Univeristy of Rochester # $Id$ ################################################################################ package WeBWorK::DB::Webwork; use strict; use warnings; use WeBWorK::Set; use WeBWorK::Problem; # there should be a `use' line for each database type use WeBWorK::DB::GDBM; # new($invocant, $courseEnv) # $invocant - implicitly set by caller # $courseEnv - an instance of CourseEnvironment sub new($$) { my $invocant = shift; my $class = ref($invocant) || $invocant; my $courseEnv = shift; my $dbModule = fullyQualifiedPackageName($courseEnv->{dbInfo}->{wwdb_type}); my $self = { webwork_file => $courseEnv->{dbInfo}->{wwdb_file}, }; $self->{webwork_db} = $dbModule->new($self->{webwork_file}); bless $self, $class; return $self; } sub fullyQualifiedPackageName($) { my $n = shift; my $package = __PACKAGE__; $package =~ s/([^:]*)$/$n/; return $package; } # ----- sub decode($) { my $string = shift; my %hash = $string =~ /(.*?)(?