original_string: public function needsProcessing(array $asset)
  	{
  		if (isset(static::$needs_processing[$asset['source']])) {
  			return static::$needs_processing[$asset['source']];
  		}
  		
  		$path          = $this->path($asset['source']);
  		$is_public     = (bool) stristr($path, $this->public_path);
  		$compiled_exts = array('less');
  		
  		// Any dependencies that need processing?
  		$dependencies = isset($asset['dependencies']) ? $asset['dependencies'] : array();
  		$dependencies = array_unique(array_merge(array_get($this->dependencies, $asset['ext'], array()), $dependencies));
  		if (!empty($dependencies)) {
  			foreach ($dependencies as $dep_source) {
  				if (!empty(static::$needs_processing[$dep_source])) {
  					return static::$needs_processing[$asset['source']] = true;
  				}
  			}
  		}
  		
  		// This file does not require processing.
  		if ($is_public && !in_array($asset['ext'], $compiled_exts)) {
  			return static::$needs_processing[$asset['source']] = false;
  		}
  		
  		$cache_path = $this->publicPath($asset);
  		
  		// Does file exist?
  		if (!File::exists($cache_path)) {
  			return static::$needs_processing[$asset['source']] = true;
  		}
  		
  		// Is cached file newer than the original?
  		if (File::lastModified($cache_path) >= File::lastModified($path)) {
  			return static::$needs_processing[$asset['source']] = false;
  		}
  		
  		// Check md5 to see if content is the same.
  		if ($f = fopen($cache_path, 'r')) {
  			$line = (string) fgets($f);
  			fclose($f);
  			
  			if (false !== strstr($line, '*/')) {
  				$md5 = trim(str_replace(array('/*', '*/'), '', $line));
  				
  				if (32 == strlen($md5)) {
  					$file_md5 = md5_file($path);
  					
  					// Skip compiling and touch existing file.
  					if ($file_md5 === $md5) {
  						touch($cache_path);
  						return false;
  					}
  				}
  			}
  		}
  		
  		return static::$needs_processing[$asset['source']] = true;
  	}
code: public function needsProcessing(array $asset)
  	{
  		if (isset(static::$needs_processing[$asset['source']])) {
  			return static::$needs_processing[$asset['source']];
  		}
  		
  		$path          = $this->path($asset['source']);
  		$is_public     = (bool) stristr($path, $this->public_path);
  		$compiled_exts = array('less');
  		
  		// Any dependencies that need processing?
  		$dependencies = isset($asset['dependencies']) ? $asset['dependencies'] : array();
  		$dependencies = array_unique(array_merge(array_get($this->dependencies, $asset['ext'], array()), $dependencies));
  		if (!empty($dependencies)) {
  			foreach ($dependencies as $dep_source) {
  				if (!empty(static::$needs_processing[$dep_source])) {
  					return static::$needs_processing[$asset['source']] = true;
  				}
  			}
  		}
  		
  		// This file does not require processing.
  		if ($is_public && !in_array($asset['ext'], $compiled_exts)) {
  			return static::$needs_processing[$asset['source']] = false;
  		}
  		
  		$cache_path = $this->publicPath($asset);
  		
  		// Does file exist?
  		if (!File::exists($cache_path)) {
  			return static::$needs_processing[$asset['source']] = true;
  		}
  		
  		// Is cached file newer than the original?
  		if (File::lastModified($cache_path) >= File::lastModified($path)) {
  			return static::$needs_processing[$asset['source']] = false;
  		}
  		
  		// Check md5 to see if content is the same.
  		if ($f = fopen($cache_path, 'r')) {
  			$line = (string) fgets($f);
  			fclose($f);
  			
  			if (false !== strstr($line, '*/')) {
  				$md5 = trim(str_replace(array('/*', '*/'), '', $line));
  				
  				if (32 == strlen($md5)) {
  					$file_md5 = md5_file($path);
  					
  					// Skip compiling and touch existing file.
  					if ($file_md5 === $md5) {
  						touch($cache_path);
  						return false;
  					}
  				}
  			}
  		}
  		
  		return static::$needs_processing[$asset['source']] = true;
  	}
code_tokens: public function needsProcessing ( array $ asset ) { if ( isset ( static :: $ needs_processing [ $ asset [ 'source' ] ] ) ) { return static :: $ needs_processing [ $ asset [ 'source' ] ] ; } $ path = $ this -> path ( $ asset [ 'source' ] ) ; $ is_public = ( bool ) stristr ( $ path , $ this -> public_path ) ; $ compiled_exts = array ( 'less' ) ; // Any dependencies that need processing? $ dependencies = isset ( $ asset [ 'dependencies' ] ) ? $ asset [ 'dependencies' ] : array ( ) ; $ dependencies = array_unique ( array_merge ( array_get ( $ this -> dependencies , $ asset [ 'ext' ] , array ( ) ) , $ dependencies ) ) ; if ( ! empty ( $ dependencies ) ) { foreach ( $ dependencies as $ dep_source ) { if ( ! empty ( static :: $ needs_processing [ $ dep_source ] ) ) { return static :: $ needs_processing [ $ asset [ 'source' ] ] = true ; } } } // This file does not require processing. if ( $ is_public && ! in_array ( $ asset [ 'ext' ] , $ compiled_exts ) ) { return static :: $ needs_processing [ $ asset [ 'source' ] ] = false ; } $ cache_path = $ this -> publicPath ( $ asset ) ; // Does file exist? if ( ! File :: exists ( $ cache_path ) ) { return static :: $ needs_processing [ $ asset [ 'source' ] ] = true ; } // Is cached file newer than the original? if ( File :: lastModified ( $ cache_path ) >= File :: lastModified ( $ path ) ) { return static :: $ needs_processing [ $ asset [ 'source' ] ] = false ; } // Check md5 to see if content is the same. if ( $ f = fopen ( $ cache_path , 'r' ) ) { $ line = ( string ) fgets ( $ f ) ; fclose ( $ f ) ; if ( false !== strstr ( $ line , '*/' ) ) { $ md5 = trim ( str_replace ( array ( '/*' , '*/' ) , '' , $ line ) ) ; if ( 32 == strlen ( $ md5 ) ) { $ file_md5 = md5_file ( $ path ) ; // Skip compiling and touch existing file. if ( $ file_md5 === $ md5 ) { touch ( $ cache_path ) ; return false ; } } } } return static :: $ needs_processing [ $ asset [ 'source' ] ] = true ; }
docstring: Returns whether or not a file needs to be processed.
  
  @param array $asset Asset array.
  
  @return boolean
docstring_tokens: Returns whether or not a file needs to be processed .