/**
 * Created by Newton on 2015/5/10.
 */

'use strict';

var util = require('./util');

var caches = {};
var cache = {
  'get': function (vinyl){
    var hash = vinyl.hash;
    var cached = caches[vinyl.path];

    // hit
    if (cached && cached.hash === hash) {
      return cached;
    }

    return null;
  },
  'set': function (vinyl){
    caches[vinyl.path] = vinyl;
  },
  clear: function (path){
    if (arguments.length) {
      delete caches[path];
    } else {
      caches = {};
    }
  }
};

/**
 * Exports module.
 */

module.exports = cache;
@@ -88,25 +88,24 @@
 ;%0A%0Avar cache
-s
  = %7B%7D;%0Avar c
@@ -112,21 +112,82 @@
 ache
+s
  = %7B
-%0A  'get':
+%7D;%0A%0A/**%0A * get cache%0A * @param vinyl%0A * @returns %7B*%7D%0A */%0A%0Acache.get =
  fun
@@ -203,18 +203,16 @@
 nyl)%7B%0A  
-  
 var hash
@@ -226,18 +226,16 @@
 l.hash;%0A
-  
   var ca
@@ -262,18 +262,16 @@
 path%5D;%0A%0A
-  
   // hit
@@ -273,18 +273,16 @@
 / hit%0A  
-  
 if (cach
@@ -315,18 +315,16 @@
 ) %7B%0A    
-  
 return c
@@ -334,17 +334,13 @@
 ed;%0A
-  
   %7D%0A%0A
-  
   re
@@ -354,21 +354,61 @@
 ll;%0A
-  %7D,%0A  'set':
+%7D;%0A%0A/**%0A * set cache%0A * @param vinyl%0A */%0A%0Acache.set =
  fun
@@ -422,18 +422,16 @@
 vinyl)%7B%0A
-  
   caches
@@ -456,21 +456,64 @@
 yl;%0A
-  %7D,%0A  
+%7D;%0A%0A/**%0A * clear cache%0A * @param path%0A */%0A%0Acache.
 clear
-:
+ =
  fun
@@ -526,18 +526,16 @@
 (path)%7B%0A
-  
   if (ar
@@ -556,18 +556,16 @@
 ) %7B%0A    
-  
 delete c
@@ -577,18 +577,16 @@
 %5Bpath%5D;%0A
-  
   %7D else
@@ -588,18 +588,16 @@
  else %7B%0A
-  
     cach
@@ -609,14 +609,8 @@
 %7B%7D;%0A
-    %7D%0A
   %7D%0A

add source file