DIR : /home/kozerus/public_html/pn/uize/site-source/js/Uize/Build/Search.js
/home/kozerus/public_html/pn/uize/site-source/js/Uize/Build
/*______________
| ______ | U I Z E J A V A S C R I P T F R A M E W O R K
| / / | ---------------------------------------------------
| / O / | MODULE : Uize.Build.Search Package
| / / / |
| / / / /| | ONLINE : http://www.uize.com
| /____/ /__/_| | COPYRIGHT : (c)2013-2016 UIZE
| /___ | LICENSE : Available under MIT License or GNU General Public License
|_______________| http://www.uize.com/license.html
*/
/* Module Meta Data
type: Package
importance: 1
codeCompleteness: 100
docCompleteness: 4
*/
/*?
Introduction
The =Uize.Build.Search= package lets you execute one of the regular expression based codebase searches configured for your project.
*DEVELOPERS:* `Chris van Rensburg`
USAGE
...............................................................................................................
node build.js Uize.Build.Search preset=[presetName] rootFolderPath=[rootFolderPath] contextLines=[contextLines]
...............................................................................................................
*/
Uize.module ({
name:'Uize.Build.Search',
required:[
'Uize.Str.Search',
'Uize.Str.SegmentHighlighter',
'Uize.Services.FileSystem'
],
builder:function () {
'use strict';
return Uize.package ({
perform:function (_params) {
function _resolveMatcher (_matcher,_resolveArrayToAnd) {
_resolveArrayToAnd = _resolveArrayToAnd == undefined || !!_resolveArrayToAnd;
if (Uize.isArray (_matcher)) {
var
_subMatchers = Uize.map (_matcher,_resolveMatcher),
_subMatchersLength = _subMatchers.length
;
return function (_value) {
for (var _subMatcherNo = -1; ++_subMatcherNo < _subMatchersLength;) {
if (_subMatchers [_subMatcherNo] (_value) != _resolveArrayToAnd)
return !_resolveArrayToAnd
;
}
return _resolveArrayToAnd;
}
} else {
return Uize.resolveMatcher (_matcher);
}
}
var
_preset = _params.preset,
_searchParams = ((_params.moduleConfigs || {}) ['Uize.Build.Search']).presets [_preset],
_matcher = _searchParams.matcher,
_pathMatcher = _resolveMatcher (_searchParams.pathMatcher,true),
_pathFilter = _resolveMatcher (_searchParams.pathFilter || Uize.returnFalse,false),
_logChunks = [],
_currentFolderPath,
_fileSystem = Uize.Services.FileSystem.singleton (),
_totalFilesWithMatches = 0,
_totalMatches = 0,
_sourcePath = _params.rootFolderPath || _params.sourcePath,
_segmentHighlighter = Uize.Str.SegmentHighlighter ({
contextLines:Uize.toNumber (_params.contextLines,5)
});
;
function _log (_logChunk) {
_logChunks.push (_logChunk);
console.log (_logChunk);
}
_fileSystem.getFiles ({
path:_sourcePath,
pathMatcher:function (_filePath) {return _pathMatcher (_filePath) && !_pathFilter (_filePath)},
pathTransformer:function (_filePath) {
var
_sourceFilePath = _sourcePath + '/' + _filePath,
_sourceFileText = _fileSystem.readFile ({path:_sourceFilePath}),
_matches = Uize.Str.Search.search (_sourceFileText,_matcher),
_matchesLength = _matches.length
;
if (_matchesLength) {
_totalFilesWithMatches++;
_totalMatches += _matchesLength;
_segmentHighlighter.set ({string:_sourceFileText});
_log (
_sourceFilePath + '\n' +
Uize.Str.Lines.indent (
'MATCHES IN THIS FILE: ' + _matches.length + '\n' +
'\n' +
Uize.map (
_matches,
function (_match) {return _segmentHighlighter.getSegmentHighlight (_match)}
).join ('\n'),
1
)
);
}
},
recursive:true
});
_log ('SUMMARY: ' + _totalMatches + ' matches in ' + _totalFilesWithMatches + ' files');
_fileSystem.writeFile ({path:(_params.logsPath || 'logs') + '/search-' + _preset + '.log',contents:_logChunks.join ('\n')});
}
});
}
});
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer