/** * Registers the filter to compile an array of files. * * @param T_Code_Group group of files to compile * @return T_Compile fluent interface */ function compile(T_Code_Files $files) { // get source code $src = ''; foreach ($files->getPaths() as $p) { $src .= file_get_contents($p); } // issue non-blocking request to google closure API to parse and optimize // the code $level = $files->isComplete() ? 'ADVANCED_OPTIMIZATIONS' : 'SIMPLE_OPTIMIZATIONS'; $url = 'http://closure-compiler.appspot.com/compile'; $params = array('output_format' => 'text', 'compilation_level' => $level, 'js_code' => $src, 'output_info' => 'compiled_code'); $request = new T_Curl_Post($url, $params); $this->curl->queue($request); $this->request[] = $request; return $this; }
function testCanLimitQueueToAMaxConnectionThreshold() { $rs = $this->getRequests(); $q = new T_Curl_Queue(count($rs) - 1); foreach ($rs as $r) { $q->queue($r); } foreach ($rs as $r) { $q->waitFor($r); $this->assertTrue(strlen($r->getBody()) > 0); } }