Sha256: e648a3ea2f6075f2884076cc019b87f06605886ff4511205a0dec9586ab2b92d

Contents?: true

Size: 1008 Bytes

Versions: 3

Compression:

Stored size: 1008 Bytes

Contents

EasyGem.extend = function (deep, target, source) {
  var copyIsArray;
  if (typeof deep !== "boolean") {
    source = target;
    target = deep;
    deep = false;
  }
  if (!source) return;
  if (typeof target !== "object") {
    target = {};
  }
  for (var name in source) {
    if (!source.hasOwnProperty(name)) continue;
    var trg = target[name];
    var src = source[name];

    // Prevent never-ending loop
    if (trg === src) continue;
    if (deep && src && (typeof src === "object" ||
            (copyIsArray = Array.isArray(src)))) {

      if (copyIsArray) {
        copyIsArray = false;
        var clone = trg && Array.isArray(trg) ? trg : [];

      } else {
        clone = trg && (typeof src === "object") ? trg : {};
      }

      // Never move original objects, clone them
      target[name] = EASY.extend(deep, trg, src);

      // Don't bring in undefined values
    } else if (src !== undefined) {
      target[name] = src;
    }
  }
  return target;
};
EASY.extend = EasyGem.extend;

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
redmine_extensions-0.2.7 app/assets/javascripts/redmine_extensions/blocking_utils.js
redmine_extensions-0.2.6 app/assets/javascripts/redmine_extensions/blocking_utils.js
redmine_extensions-0.2.5 app/assets/javascripts/redmine_extensions/blocking_utils.js