text: 'use strict';
  
  module.exports = function (grunt) {
      // Show elapsed time at the end
      require('time-grunt')(grunt);
      // Load all grunt tasks
      require('load-grunt-tasks')(grunt);
  
      // Project configuration.
      grunt.initConfig({
          nodeunit: {
              files: ['test/**/*_test.js']
          },
          jshint: {
              options: {
                  jshintrc: '.jshintrc',
                  reporter: require('jshint-stylish')
              },
              gruntfile: {
                  src: 'Gruntfile.js'
              },
              lib: {
                  src: ['lib/**/*.js', '!lib/fs-filesysteminfo.js']
              },
              test: {
                  src: ['test/**/*.js']
              }
          },
          coffee: {
              lib: {
                  bare: true,
                  expand: true,
                  flatten: true,
                  src: ['src/{,*/}*.coffee'],
                  dest: 'lib/',
                  ext: '.js'
              }
          },
          watch: {
              gruntfile: {
                  files: '<%= jshint.gruntfile.src %>',
                  tasks: ['jshint:gruntfile']
              },
              lib: {
                  files: '<%= jshint.lib.src %>',
                  tasks: ['jshint:lib', 'nodeunit']
              },
              test: {
                  files: '<%= jshint.test.src %>',
                  tasks: ['jshint:test', 'nodeunit']
              },
              coffee_lib: {
                  files: '<%= coffee.lib.src %>',
                  tasks: ['coffee:lib']
              }
          }
      });
  
      // Default task.
      grunt.registerTask('default', ['coffee:lib', 'jshint', 'nodeunit']);
      grunt.registerTask('wcoffee', ['watch:coffee_lib']);
  };
  