File tree Expand file tree Collapse file tree 3 files changed +66
-3
lines changed
Expand file tree Collapse file tree 3 files changed +66
-3
lines changed Original file line number Diff line number Diff line change @@ -83,13 +83,14 @@ module.exports = {
8383
8484 // Ember Suave and Netguru Rules
8585 'ship-shape/avoid-leaking-state-in-components' : 'error' ,
86- 'ship-shape/order-in-components' : 'error' ,
87- 'ship-shape/order-in-controllers' : 'error' ,
88- 'ship-shape/order-in-models' : 'error' ,
8986 'ship-shape/no-direct-property-access' : 'error' ,
9087 'ship-shape/no-empty-attrs' : 'error' ,
88+ 'ship-shape/no-observers' : 'error' ,
9189 'ship-shape/no-on-calls-in-components' : 'error' ,
9290 'ship-shape/no-side-effects' : 'error' ,
91+ 'ship-shape/order-in-components' : 'error' ,
92+ 'ship-shape/order-in-controllers' : 'error' ,
93+ 'ship-shape/order-in-models' : 'error' ,
9394 'ship-shape/prefer-destructuring' : 'error' ,
9495 'ship-shape/query-params-on-top' : 'error' ,
9596 'ship-shape/require-access-in-comments' : 'error' ,
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ var ember = require ( '../../lib/utils/ember' ) ;
4+
5+ //------------------------------------------------------------------------------
6+ // General rule - Don't use observers
7+ //------------------------------------------------------------------------------
8+
9+ module . exports = function ( context ) {
10+
11+ var message = 'Don\'t use observers if possible' ;
12+
13+ var report = function ( node ) {
14+ context . report ( node , message ) ;
15+ } ;
16+
17+ return {
18+ CallExpression : function ( node ) {
19+ var callee = node . callee ;
20+
21+ if ( ember . isModule ( node , 'observer' ) ) {
22+ report ( node ) ;
23+ }
24+ }
25+ } ;
26+
27+ } ;
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ // ------------------------------------------------------------------------------
4+ // Requirements
5+ // ------------------------------------------------------------------------------
6+
7+ var rule = require ( '../../../lib/rules/no-observers' ) ;
8+ var RuleTester = require ( 'eslint' ) . RuleTester ;
9+
10+ // ------------------------------------------------------------------------------
11+ // Tests
12+ // ------------------------------------------------------------------------------
13+
14+ var eslintTester = new RuleTester ( ) ;
15+ eslintTester . run ( 'no-observers' , rule , {
16+ valid : [
17+ {
18+ code : 'export default Controller.extend();' ,
19+ parserOptions : { ecmaVersion : 6 , sourceType : "module" } ,
20+ } ,
21+ {
22+ code : 'export default Controller.extend({actions: {},});' ,
23+ parserOptions : { ecmaVersion : 6 , sourceType : "module" } ,
24+ }
25+ ] ,
26+ invalid : [
27+ {
28+ code : 'Ember.observer("text", function() {});' ,
29+ parserOptions : { ecmaVersion : 6 , sourceType : "module" } ,
30+ errors : [ {
31+ message : 'Don\'t use observers if possible' ,
32+ } ] ,
33+ }
34+ ]
35+ } ) ;
You can’t perform that action at this time.
0 commit comments