lib/container.js
function(name) {

  var injection = function() {
    var path = name.split('.');
    var ref = container;

    for (var i = 0; i < path.length; i++) {

      if (!ref[path[i]]) {
        if (ref.cream) {
          ref = ref.cream;
          i--;
          continue;
        }

        return;
      } else {
        ref = ref[path[i]];
      }
    }

    return ref.cream || ref;
  };

  injection.isInjection = true;
  injection.namespace = name;

//  if (!skipCache) {
//    caramel.once('register:' + name, function() {
//      injection();
//    });
//  }

  return injection;
}
function(name) {

  var injection = function() {
    var path = name.split('.');
    var ref = container;

    for (var i = 0; i < path.length; i++) {

      if (!ref[path[i]]) {
        if (ref.cream) {
          ref = ref.cream;
          i--;
          continue;
        }

        return;
      } else {
        ref = ref[path[i]];
      }
    }

    return ref.cream || ref;
  };

  injection.isInjection = true;
  injection.namespace = name;

//  if (!skipCache) {
//    caramel.once('register:' + name, function() {
//      injection();
//    });
//  }

  return injection;
}
DI inject

@name inject
@function
@access public
@param {String} name namespace inject object from
@returns {function} injection resolver function