@@ -46,31 +46,41 @@ module.exports = Class.extend(
4646
4747 extend : function ( ) {
4848 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+ }
6170 }
6271 }
63- }
6472
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+ }
7281 }
7382 }
83+
7484
7585 return this . _super . apply ( this , extendingArgs ) ;
7686 }
0 commit comments