@@ -46,31 +46,41 @@ module.exports = Class.extend(
46
46
47
47
extend : function ( ) {
48
48
var extendingArgs = [ ] . slice . call ( arguments )
49
- , stack = new Error ( ) . stack . split ( '\n' )
50
- , stack = stack . splice ( 1 , stack . length - 1 )
51
- , extendingFilePath = false
52
- , extendingFileName = false
53
- , route = null ;
54
-
55
- while ( stack . length > 0 && extendingFilePath === false ) {
56
- var file = stack . shift ( ) ;
57
- if ( ! / c l e v e r - c o n t r o l l e r / ig. test ( file ) && ! / u b e r c l a s s / ig. test ( file ) ) {
58
- if ( / \( ( [ ^ \[ \: ] + ) .* \) / ig. test ( file ) ) {
59
- extendingFilePath = RegExp . $1 ;
60
- extendingFileName = path . basename ( extendingFilePath ) . replace ( / ( c o n t r o l l e r ) ? .j s / ig, '' ) . toLowerCase ( ) ;
49
+ , autoRouting = ( extendingArgs . length === 2 )
50
+ ? extendingArgs [ 0 ] . autoRouting !== false
51
+ : false
52
+ , definedRoute = ( extendingArgs . length === 2 )
53
+ ? extendingArgs [ 0 ] . route !== undefined
54
+ : false ;
55
+
56
+ if ( autoRouting && ! definedRoute ) {
57
+ var stack = new Error ( ) . stack . split ( '\n' )
58
+ , stack = stack . splice ( 1 , stack . length - 1 )
59
+ , extendingFilePath = false
60
+ , extendingFileName = false
61
+ , route = null ;
62
+
63
+ while ( stack . length > 0 && extendingFilePath === false ) {
64
+ var file = stack . shift ( ) ;
65
+ if ( ! / c l e v e r - c o n t r o l l e r / ig. test ( file ) && ! / u b e r c l a s s / ig. test ( file ) ) {
66
+ if ( / \( ( [ ^ \[ \: ] + ) .* \) / ig. test ( file ) ) {
67
+ extendingFilePath = RegExp . $1 ;
68
+ extendingFileName = path . basename ( extendingFilePath ) . replace ( / ( c o n t r o l l e r ) ? .j s / ig, '' ) . toLowerCase ( ) ;
69
+ }
61
70
}
62
71
}
63
- }
64
72
65
- if ( [ '' , 'controller' ] . indexOf ( extendingFileName ) === - 1 && this . route === false ) {
66
- route = [ '/' , extendingFileName ] . join ( '' ) ;
67
- // debug( 'Binding automatic route name??' )
68
- if ( extendingArgs . length === 2 ) {
69
- extendingArgs [ 0 ] . route = route ;
70
- } else {
71
- extendingArgs . unshift ( { route : route } ) ;
73
+ if ( [ '' , 'controller' ] . indexOf ( extendingFileName ) === - 1 && this . route === false ) {
74
+ route = [ '/' , extendingFileName ] . join ( '' ) ;
75
+ // debug( 'Binding automatic route name??' )
76
+ if ( extendingArgs . length === 2 ) {
77
+ extendingArgs [ 0 ] . route = route ;
78
+ } else {
79
+ extendingArgs . unshift ( { route : route } ) ;
80
+ }
72
81
}
73
82
}
83
+
74
84
75
85
return this . _super . apply ( this , extendingArgs ) ;
76
86
}
0 commit comments