]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Model/CDBI.pm
Added Maypole::Config, and changed other classes to reflect that.
[maypole.git] / lib / Maypole / Model / CDBI.pm
index e1d665291f55afb16b78451c2f4ffa60b50315ea..6ad14171255cad627ee61722099fbe4cd190a71a 100644 (file)
@@ -114,7 +114,7 @@ sub search : Exported {
 
 sub do_pager {
     my ( $self, $r ) = @_;
-    if ( my $rows = $r->config->{rows_per_page} ) {
+    if ( my $rows = $r->config->rows_per_page ) {
         return $r->{template_args}{pager} =
           $self->pager( $rows, $r->query->{page} );
     }
@@ -127,9 +127,9 @@ sub order {
     my %ok_columns = map { $_ => 1 } $self->columns;
     if ( $order = $r->query->{order} and $ok_columns{$order} ) {
         $order .= ( $r->query->{o2} eq "desc" && " DESC" );
+       }
+       $order;
     }
-    $order;
-}
 
 sub list : Exported {
     my ( $self, $r ) = @_;
@@ -144,26 +144,26 @@ sub list : Exported {
 }
 
 sub setup_database {
-    my ( $self, $config, $namespace, $dsn, $u, $p, $opts ) = @_;
-    $dsn  ||= $config->{dsn};
-    $u    ||= $config->{user};
-    $p    ||= $config->{pass};
-    $opts ||= $config->{opts};
-    $config->{dsn}    = $dsn;
-    $config->{loader} = Class::DBI::Loader->new(
+    my ($self, $config, $namespace, $dsn, $u, $p, $opts) = @_;
+    $dsn  ||= $config->dsn;
+    $u    ||= $config->user;
+    $p    ||= $config->pass;
+    $opts ||= $config->opts;
+    $config->dsn($dsn);
+    $config->loader || $config->loader( Class::DBI::Loader->new(
         namespace => $namespace,
-        dsn       => $dsn,
-        user      => $u,
-        password  => $p,
-        options   => $opts,
-    );
+        dsn => $dsn,
+        user => $u,
+        password => $p,
+        options => $opts,
+    ) );
     $config->{classes} = [ $config->{loader}->classes ];
     $config->{tables}  = [ $config->{loader}->tables ];
 }
 
 sub class_of {
     my ( $self, $r, $table ) = @_;
-    return $r->config->{loader}->_table2class($table);
+    return $r->config->loader->_table2class($table);
 }
 
 1;