text: var inspect = require("util").inspect,
      fs = require("fs");
  
  
  module.exports = function(grunt) {
  
    var task = grunt.task;
    var file = grunt.file;
    var log = grunt.log;
    var verbose = grunt.verbose;
    var fail = grunt.fail;
    var option = grunt.option;
    var config = grunt.config;
    var template = grunt.template;
    var _ = grunt.util._;
  
  
  
    // Project configuration.
    grunt.initConfig({
      pkg: grunt.file.readJSON("package.json"),
      nodeunit: {
        tests: [
          "test/spark.js"
        ]
      },
      jshint: {
        options: {
          curly: true,
          eqeqeq: true,
          immed: true,
          latedef: true,
          newcap: true,
          noarg: true,
          sub: true,
          undef: true,
          boss: true,
          eqnull: true,
          node: true,
          strict: false,
          globals: {
            exports: true,
            document: true,
            WeakMap: true,
            window: true
          }
        },
        files: {
          src: [
            "Gruntfile.js",
            "lib/**/*.js",
            "test/**/*.js",
            "eg/**/*.js"
          ]
        }
      },
  
      jsbeautifier: {
        files: ["lib/**/*.js", "eg/**/*.js", "test/**/*.js"],
        options: {
          js: {
            braceStyle: "collapse",
            breakChainedMethods: false,
            e4x: false,
            evalCode: false,
            indentChar: " ",
            indentLevel: 0,
            indentSize: 2,
            indentWithTabs: false,
            jslintHappy: false,
            keepArrayIndentation: false,
            keepFunctionIndentation: false,
            maxPreserveNewlines: 10,
            preserveNewlines: true,
            spaceBeforeConditional: true,
            spaceInParen: false,
            unescapeStrings: false,
            wrapLineLength: 0
          }
        }
      },
      watch: {
        src: {
          files: [
            "Gruntfile.js",
            "lib/**/!(johnny-five)*.js",
            "test/**/*.js",
            "eg/**/*.js"
          ],
          tasks: ["default"],
          options: {
            interrupt: true,
          },
        }
      }
    });
  
    grunt.loadNpmTasks("grunt-contrib-watch");
    grunt.loadNpmTasks("grunt-contrib-nodeunit");
    grunt.loadNpmTasks("grunt-contrib-jshint");
    grunt.loadNpmTasks("grunt-jsbeautifier");
  
    grunt.registerTask("default", ["jshint", "nodeunit"]);
  };
  