OSDN Git Service

Model::Base: implement logging method
authorhylom <hylom@users.sourceforge.jp>
Sun, 25 Sep 2016 13:53:49 +0000 (22:53 +0900)
committerhylom <hylom@users.sourceforge.jp>
Sun, 25 Sep 2016 13:54:23 +0000 (22:54 +0900)
dev/newslash_web/lib/Newslash/Model/Base.pm
dev/newslash_web/lib/Newslash/Model/Comments.pm
dev/newslash_web/lib/Newslash/Web.pm

index d0d894c..b9aed95 100644 (file)
@@ -56,6 +56,22 @@ sub connect_db {
 
 }
 
+sub logger {
+    my $self = shift;
 
+    if ($self->{options}->{logger}) {
+        return $self->{options}->{logger};
+    }
+    # return dummy object
+    return {
+            append => sub {},
+            debug => sub {},
+            error => sub {},
+            fatal => sub {},
+            info => sub {},
+            is_level => sub {},
+            warn => sub {},
+           };
+}
 
 1;
index 9013c2f..0e195c4 100644 (file)
@@ -72,11 +72,13 @@ EOSQL
     $dbh->disconnect();
     return undef;
   }
+
+  my $root = $self->build_comment_tree($comments);
   return $comments;
 }
 
 sub build_comment_tree {
-    my ($self, $comments, $logger)  = @_;
+    my ($self, $comments)  = @_;
     my $root = [];
     my $comment_of = {};
 
@@ -96,9 +98,7 @@ sub build_comment_tree {
         if ($parent) {
             push @{$parent->{children}}, $comment;
         } else {
-            if ($logger) {
-                $logger->warn("(Controller::Story) invalid comment order. cid: $cid, pid: $pid");
-            }
+            warn("(Controller::Story) invalid comment order. cid: $cid, pid: $pid");
         }
     }
     return $root;
index 4efa13f..67f2285 100644 (file)
@@ -25,8 +25,9 @@ sub startup {
     $app->secrets([$app->config->{System}->{secret_key},]);
 
     # add Model
-    my $db_opts = $app->config->{Database};
-    $app->helper(model => Newslash::Model->loader($db_opts));
+    my $model_opts = $app->config->{Database};
+    $model_opts->{logger} = $app->log;
+    $app->helper(model => Newslash::Model->loader($model_opts));
 
     # use Template::Toolkit 2 render
     $app->plugin('Newslash::Plugin::TT2Renderer');