/**
  * get back a the view results.
  * Example:
  *    $params = array(
  *       'startkey'=>'bear',
  *       'endkey'=>'zebra',
  *       'connection_timeout'=> 60000,
  *       'limit'=>10,
  *       'skip'=>0,
  *       'full_set'=>'true',
  *    );
  *    $result = $view->query('mammals' $params);
  *
  */
 public function query($view, $params = NULL)
 {
     $params = new Container($params);
     foreach ($params as $k => $v) {
         if (!is_scalar($v) || preg_match('#key#i', $k)) {
             $params->{$k} = json_encode($v);
         }
     }
     $len = strlen($this->app);
     $app = $len > 0 ? $this->app : 'default/';
     $http = $this->request('_design/' . $app . '_view/' . $view . '/?' . \Gaia\Http\Util::buildQuery($params->all()));
     $response = $this->validateResponse($http->exec(), array(200));
     $result = $response->body;
     if ($len < 1) {
         return $result;
     }
     foreach ($result['rows'] as &$row) {
         if (isset($row['id'])) {
             $row['id'] = substr($row['id'], $len);
         }
     }
     return $result;
 }
    }
    $dt = "\n[" . date('H:i:s') . '] ';
    echo $dt . str_replace("\n", $dt, trim($v));
});
$debugger("kicking off job runner ...\n---------------------");
Job::config()->setHandler(function (Http\Request $request) use($debugger) {
    $out = "\nHTTP";
    if ($request->id) {
        $out .= " - " . $request->id;
    }
    $info = $request->response;
    if ($info->http_code != 200) {
        $out .= '-ERR';
    }
    $out .= ": " . $info->url;
    $post = substr(is_array($request->post) ? \Gaia\Http\Util::buildQuery($request->post) : $request->post, 0, 75);
    $out .= '  ' . $post;
    if (strlen($post) >= 75) {
        $out .= ' ...';
    }
    if (strlen($info->response_header) < 1) {
        $out .= " - NO RESPONSE";
    } else {
        if ($post) {
            $post .= "\n";
        }
        $out .= "\n------\n";
        $out .= "\n" . $info->request_header . $post . $info->response_header;
        $out .= "\n------\n";
    }
    $debugger($out);
        $out .= " - " . $job->id;
    }
    if ($info->http_code != 200) {
        $out .= '-ERR';
    }
    $out .= ": " . $info->url;
    if ($info->http_code == 200) {
        $debugger($out);
        if ($job->persistent_timeout && $job->persistent_timeout > time()) {
            $conn_pool[] = array('timeout' => $job->persistent_timeout, 'resource' => $job->resource);
        } else {
            $job->close();
        }
        return;
    }
    $post = substr(is_array($job->post) ? \Gaia\Http\Util::buildQuery($job->post) : $job->post, 0, 75);
    $out .= '  ' . $post;
    if (strlen($post) >= 75) {
        $out .= ' ...';
    }
    if (strlen($info->response_header) < 1) {
        $out .= " - NO RESPONSE";
    } else {
        $out .= "\n------\n";
        $out .= "\n" . $info->request_header;
        $out .= "\n" . $info->response_header . $info->body;
        $out .= "\n------\n";
    }
    $debugger($out);
});
$register = function () use($runner) {