grunt-pdiffy

Perceptual difference tool for grunt

grunt-pdiffy

Perceptual difference tool for grunt

This plugin requires Grunt.

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-pdiffy --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-pdiffy');

In your project's Gruntfile, add a section named pdiffy to the data object passed into grunt.initConfig().

grunt.initConfig({
  pdiffy: {
    "your_target": {
      // Regular pdiffy config 
    }
  }
});

The config is the same object you would pass into pdiffy. View pdiffy documentation for more information.

In this example, we perform a difference between our local site and production site everytime the task is run.

grunt.initConfig({
  pdiffy: {
    prod: {
      output: "./differences/session.pdiffy",
      timestamp: true,
      captures: [{
        url: ["http://localhost", "http://mysite.com"]
      }]
    }
  }
})

In this example, we perform a difference every hour. This is usually something you would want to run as a background task.

grunt.initConfig({
  pdiffy: {
    target: {
      output: "./difference/session.pdiffy",
      schedule: {
        minutes: 0
      },
      captures: [{
        url: ["http://localhost", "http://mysite.com"]
      }]
    }
  }
})

In this example, we perform a difference every 5 minutes. This is usually something you would want to run as a background task.

grunt.initConfig({
  pdiffy: {
    target: {
      output: "./difference/session.pdiffy",
      interval: 5,
      captures: [{
        url: ["http://localhost", "http://mysite.com"]
      }]
    }
  }
})

When a job is finished the data can get passed to have custom handling. The pdiffy event is fired and passed 3 parameters, the target, resulting session data, and a done callback to terminate the grunt task.

grunt.event.on('pdiffy', function(targetsessiondone) {
  // Session data contains the same data as would get output to a file 
});

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

(Nothing yet)

Copyright (c) 2013 Steven Sojka. Licensed under the MIT license.