| Conditions | 1 |
| Paths | 1 |
| Total Lines | 151 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 6 | ||
| Bugs | 0 | Features | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | /* global module, require */ |
||
| 2 | module.exports = function( grunt ) { |
||
| 3 | 'use strict'; |
||
| 4 | |||
| 5 | // Load all grunt tasks |
||
| 6 | require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); |
||
| 7 | |||
| 8 | // Project configuration |
||
| 9 | grunt.initConfig( { |
||
| 10 | pkg: grunt.file.readJSON( 'package.json' ), |
||
| 11 | |||
| 12 | jshint: { |
||
| 13 | browser: { |
||
| 14 | files: { |
||
| 15 | src: [ 'assets/js/src/*.js' ] |
||
| 16 | }, |
||
| 17 | options: { |
||
| 18 | jshintrc: '.jshintrc' |
||
| 19 | } |
||
| 20 | }, |
||
| 21 | grunt: { |
||
| 22 | files:{ |
||
| 23 | src: [ 'Gruntfile.js' ] |
||
| 24 | }, |
||
| 25 | options: { |
||
| 26 | jshintrc: '.gruntjshintrc' |
||
| 27 | } |
||
| 28 | } |
||
| 29 | }, |
||
| 30 | |||
| 31 | concat: { |
||
| 32 | options: { |
||
| 33 | stripBanners: true, |
||
| 34 | banner: '/*! <%= pkg.title %> - v<%= pkg.version %> %>\n' + |
||
| 35 | ' * <%= pkg.homepage %>\n' + |
||
| 36 | ' * Copyright (c) <%= grunt.template.today("yyyy") %>;' + |
||
| 37 | ' * Licensed GPLv2+' + |
||
| 38 | ' */\n', |
||
| 39 | sourceMap: true |
||
| 40 | }, |
||
| 41 | css: { |
||
| 42 | files: { |
||
| 43 | 'assets/css/bulk-delete.css': ['assets/css/src/**/*.css'] |
||
| 44 | } |
||
| 45 | }, |
||
| 46 | scripts: { |
||
| 47 | files: { |
||
| 48 | 'assets/js/bulk-delete.js': ['assets/js/src/**/*.js'] |
||
| 49 | } |
||
| 50 | } |
||
| 51 | }, |
||
| 52 | |||
| 53 | uglify: { |
||
| 54 | all: { |
||
| 55 | options: { |
||
| 56 | banner: '/*! <%= pkg.title %> - v<%= pkg.version %> \n' + |
||
| 57 | ' * <%= pkg.homepage %>\n' + |
||
| 58 | ' * Copyright (c) <%= grunt.template.today("yyyy") %>;' + |
||
| 59 | ' * Licensed GPLv2+' + |
||
| 60 | ' */\n', |
||
| 61 | mangle: { |
||
| 62 | except: ['jQuery'] |
||
| 63 | } |
||
| 64 | }, |
||
| 65 | files: { |
||
| 66 | 'assets/js/bulk-delete.min.js': ['assets/js/bulk-delete.js'] |
||
| 67 | } |
||
| 68 | } |
||
| 69 | }, |
||
| 70 | |||
| 71 | cssmin: { |
||
| 72 | minify: { |
||
| 73 | src: 'assets/css/bulk-delete.css', |
||
| 74 | dest: 'assets/css/bulk-delete.min.css' |
||
| 75 | } |
||
| 76 | }, |
||
| 77 | |||
| 78 | watch: { |
||
| 79 | scripts: { |
||
| 80 | files: ['assets/js/src/**/*.js'], |
||
| 81 | tasks: ['jshint:browser', 'concat', 'uglify'], |
||
| 82 | options: { |
||
| 83 | debounceDelay: 500 |
||
| 84 | } |
||
| 85 | }, |
||
| 86 | css: { |
||
| 87 | files: ['assets/css/src/**/*.css'], |
||
| 88 | tasks: ['concat', 'cssmin'], |
||
| 89 | options: { |
||
| 90 | debounceDelay: 500 |
||
| 91 | } |
||
| 92 | } |
||
| 93 | }, |
||
| 94 | |||
| 95 | clean : { |
||
| 96 | dist: ['dist/'] |
||
| 97 | }, |
||
| 98 | |||
| 99 | copy: { |
||
| 100 | timepicker: { |
||
| 101 | files: [{ |
||
| 102 | src : 'assets/vendor/jqueryui-timepicker-addon/dist/jquery-ui-timepicker-addon.min.js', |
||
| 103 | dest: 'assets/js/jquery-ui-timepicker-addon.min.js' |
||
| 104 | }, |
||
| 105 | { |
||
| 106 | src : 'assets/vendor/jqueryui-timepicker-addon/dist/jquery-ui-timepicker-addon.min.css', |
||
| 107 | dest: 'assets/css/jquery-ui-timepicker-addon.min.css' |
||
| 108 | }] |
||
| 109 | }, |
||
| 110 | select2: { |
||
| 111 | files: [{ |
||
| 112 | src : 'assets/vendor/select2/dist/js/select2.min.js', |
||
| 113 | dest: 'assets/js/select2.min.js' |
||
| 114 | }, |
||
| 115 | { |
||
| 116 | src : 'assets/vendor/select2/dist/css/select2.min.css', |
||
| 117 | dest: 'assets/css/select2.min.css' |
||
| 118 | }] |
||
| 119 | }, |
||
| 120 | dist: { |
||
| 121 | files : [ |
||
| 122 | { |
||
| 123 | expand: true, |
||
| 124 | src: [ |
||
| 125 | '**', |
||
| 126 | '!dist/**', |
||
| 127 | '!assets-wp-repo/**', |
||
| 128 | '!node_modules/**', |
||
| 129 | '!assets/vendor/**', |
||
| 130 | '!assets/js/src/**', |
||
| 131 | '!assets/css/src/**', |
||
| 132 | '!Gruntfile.js', |
||
| 133 | '!bower.json', |
||
| 134 | '!package.json', |
||
| 135 | '!phpcs.xml', |
||
| 136 | '!tags' |
||
| 137 | ], |
||
| 138 | dest: 'dist/' |
||
| 139 | } |
||
| 140 | ] |
||
| 141 | } |
||
| 142 | } |
||
| 143 | } ); |
||
| 144 | |||
| 145 | require('time-grunt')(grunt); |
||
| 146 | |||
| 147 | grunt.registerTask('default', ['jshint:browser', 'concat', 'uglify', 'cssmin']); |
||
| 148 | grunt.registerTask('vendor', ['copy:timepicker', 'copy:select2']); |
||
| 149 | grunt.registerTask('build', [ 'default', 'vendor', 'clean', 'copy:dist']); |
||
| 150 | |||
| 151 | grunt.util.linefeed = '\n'; |
||
| 152 | }; |
||
| 153 |