1- var git = require ( '../' ) ;
1+ var git = require ( '../' )
2+ , events = require ( 'events' ) ;
23
34var _Tree = function ( obj , tree ) {
45 var self = { } ;
5-
6- if ( obj instanceof git . raw . Repo ) {
6+ if ( obj instanceof git . raw . Repo && tree instanceof git . raw . Tree ) {
77 self . repo = obj ;
8- self . tree = new git . raw . Tree ( tree ) ;
8+ self . tree = tree ;
99 }
10- else if ( obj instanceof git . raw . Repo && tree instanceof git . raw . Tree ) {
10+ else if ( obj instanceof git . raw . Repo ) {
1111 self . repo = obj ;
12- self . tree = tree ;
12+ self . tree = new git . raw . Tree ( tree ) ;
1313 }
1414 else if ( obj instanceof git . raw . Tree ) {
1515 self . tree = obj ;
@@ -25,17 +25,46 @@ var _Tree = function( obj, tree ) {
2525 enumerable : true
2626 } ) ;
2727
28- self . each = function ( callback ) {
28+ // Synchronous walk
29+ self . walk = function ( callback ) {
2930 if ( ! callback ) { return ; }
3031
31- var entry , i ;
32+ var entry
33+ , i ;
34+
3235 for ( i = 0 , len = self . length ; i < len ; i ++ ) {
33- entry = git . entry ( ) ;
36+ entry = git . entry ( self . repo ) ;
37+
3438 self . tree . entryByIndex ( entry . entry , i ) ;
35- callback . apply ( entry , [ i , entry ] ) ;
39+
40+ if ( callback . apply ( entry , [ i , entry ] ) === false ) {
41+ break ;
42+ }
3643 }
3744 } ;
3845
46+ //self.walk = function( callback ) {
47+ // if( !callback ) { return; }
48+
49+ // var entry
50+ // , i
51+ // , entries
52+ // , event = new events.EventEmitter();
53+
54+ // for( i=0, len=self.length; i<len; i++ ) {
55+ // entry = git.entry();
56+
57+ // self.tree.entryByIndex( entry.entry, i );
58+ // event.emit( 'entry', [ err, i, entry ] );
59+
60+ // entries.push( entry );
61+ // }
62+
63+ // event.emit( 'end', entries );
64+
65+ // return event;
66+ //};
67+
3968 self . entry = function ( name ) {
4069 var entry = git . entry ( self . repo ) ;
4170
0 commit comments