Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

quicklib.js

By: ca0v on Aug 15th, 2012  |  syntax: JavaScript  |  size: 2.35 KB  |  views: 50  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. var $ = {
  2.         crudify: function (store, query, crud)
  3.         {
  4.                 if (null == crud)
  5.                 {
  6.                         crud = query;
  7.                         query = store;
  8.                         store = null;
  9.                 }
  10.                 if (store)
  11.                 {
  12.                         query = store.query(query);
  13.                 }
  14.                 query.observe(function (row, deleteIndex, insertIndex)
  15.                 {
  16.                         var del = (0 <= deleteIndex), ins = (0 <= insertIndex);
  17.                         !del && ins && crud.c && crud.c(row);
  18.                         del && ins && crud.u && crud.u(row);
  19.                         del && !ins && crud.d && crud.d(row);
  20.                 }, !!crud.u);
  21.         },
  22.  
  23.         get : function ( item, keys )
  24.         {
  25.                 var i, j;
  26.                 for ( i = 0, j = keys.length; i < j; i++ )
  27.                 {
  28.                         item = item[ keys[ i ] ];
  29.                         if ( undefined === item )
  30.                         {
  31.                                 break;
  32.                         }
  33.                 }
  34.                 return item;
  35.         },
  36.  
  37.         set : function ( item, keys, value )
  38.         {
  39.                 var i, j, key;
  40.                 for ( i = 0, j = keys.length - 1; i <= j; i++ )
  41.                 {
  42.                         key = keys[ i ];
  43.                         item = item[ key ] = ( i === j ) ? value : ( item[ key ] || [] );
  44.                 }
  45.                 return value;
  46.         },
  47.  
  48.         delay : function ( timeout, id, callback )
  49.         {
  50.                 this.delays = this.delays || [];
  51.                 var delay = this.delays[ id ];
  52.                 if ( delay )
  53.                 {
  54.                         clearTimeout ( delay );
  55.                 }
  56.                 delay = setTimeout ( callback, timeout );
  57.                 this.delays[ id ] = delay;
  58.         },
  59.  
  60.         range : function ( min, max )
  61.         {
  62.                 var result = [];
  63.                 while ( min <= max )
  64.                 {
  65.                         result.push ( min++ );
  66.                 }
  67.                 return result;
  68.         }
  69. };
  70.  
  71. var array = {
  72.  
  73.         every: function (array, test)
  74.         {
  75.                 for (var i = 0; i < array.length; i++)
  76.                 {
  77.                         if (!test(array[i], i, array))
  78.                                 return false;
  79.                 }
  80.                 return true;
  81.         },
  82.  
  83.         filter: function (array, test)
  84.         {
  85.                 var result = [];
  86.                 for (var i = 0; i < array.length; i++)
  87.                 {
  88.                         test(array[i], i, array) && result.push(array[i]);
  89.                 }
  90.                 return result;
  91.         },
  92.  
  93.         map: function (array, mapper)
  94.         {
  95.                 var result = [];
  96.                 for (var i = 0; i < array.length; i++)
  97.                 {
  98.                         result.push(mapper(array[i], i, array));
  99.                 }
  100.                 return result;
  101.         },
  102.  
  103.         forEach: function (array, mapper)
  104.         {
  105.                 for (var i = 0; i < array.length; i++)
  106.                 {
  107.                         mapper(array[i], i, array);
  108.                 }
  109.         }
  110. };
  111.  
  112. var lang = {
  113.  
  114.         mixin: function (to, from)
  115.         {
  116.                 for (var key in from)
  117.                 {
  118.                         if (from.hasOwnProperty(key))
  119.                         {
  120.                                 to[key] = from[key];
  121.                         }
  122.                 }
  123.                 return to;
  124.         }
  125. };
  126.  
  127. var string = {
  128.  
  129.         substitute: function (pattern, map)
  130.         {
  131.                 for (var key in map)
  132.                 {
  133.                         if (map.hasOwnProperty(key))
  134.                         {
  135.                                 pattern = pattern.replace("${" + key + "}", map[key]);
  136.                         }
  137.                 }
  138.                 return pattern;
  139.         }
  140. };