https://www.mediawiki.org/wiki/Special:Code/MediaWiki/112490
Revision: 112490
Author: gwicke
Date: 2012-02-27 16:40:01 +0000 (Mon, 27 Feb 2012)
Log Message:
-----------
Add a simple dump grepper using DumpReader. Useful to inform parser design
decisions, and as a way to exercise the dump reader in preparation for tests
over full dumps.
Added Paths:
-----------
trunk/extensions/VisualEditor/tests/parser/dumpGrepper.js
Added: trunk/extensions/VisualEditor/tests/parser/dumpGrepper.js
===================================================================
--- trunk/extensions/VisualEditor/tests/parser/dumpGrepper.js
(rev 0)
+++ trunk/extensions/VisualEditor/tests/parser/dumpGrepper.js 2012-02-27
16:40:01 UTC (rev 112490)
@@ -0,0 +1,52 @@
+var dumpReader = require('./dumpReader.js'),
+ events = require('events'),
+ optimist = require('optimist');
+
+function DumpGrepper ( regexp ) {
+ // inherit from EventEmitter
+ //events.EventEmitter.call(this);
+ this.re = regexp;
+}
+
+DumpGrepper.prototype = new events.EventEmitter();
+DumpGrepper.prototype.constructor = DumpGrepper;
+
+DumpGrepper.prototype.grepRev = function ( revision ) {
+ var bits = revision.text.split( this.re );
+ if ( bits.length > 1 ) {
+ this.emit( 'match', revision, bits );
+ }
+}
+
+module.exports.DumpGrepper = DumpGrepper;
+
+if (module === require.main) {
+ var argv = optimist.usage( 'Usage: $0 <regexp>', {
+ 'i': {
+ description: 'Case-insensitive matching',
+ 'boolean': true,
+ 'default': false
+ }
+ } ).argv;
+
+ console.log( argv );
+
+ var flags = '';
+ if(argv.i) {
+ flags += 'i';
+ }
+
+ var reader = new dumpReader.DumpReader(),
+ grepper = new DumpGrepper( new RegExp( '(' + argv._[0] + ')',
flags ) );
+
+ reader.on( 'revision', grepper.grepRev.bind( grepper ) );
+ grepper.on( 'match', function ( revision, bits ) {
+ console
+ console.log( 'Match:' + revision.page.title )
+ console.log( bits.map( function ( s ) { return s.substr(0, 40)
} ) );
+ } );
+ process.stdin.setEncoding('utf8');
+ process.stdin.on('data', reader.push.bind(reader) );
+ process.stdin.resume();
+}
+
Property changes on: trunk/extensions/VisualEditor/tests/parser/dumpGrepper.js
___________________________________________________________________
Added: svn:eol-style
+ native
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs