function parseComponentOptions(el, namespace, opts) {

      var options = _.clone(opts || {});
      options.el = el;
      options.require = {};

      var name, data = core.dom.data(el);

      // Here we go through all the data attributes of the element to build the options object
      core.util.each(data, function(k, v) {
        k = k.replace(new RegExp("^" + namespace), "");
        k = k.charAt(0).toLowerCase() + k.slice(1);
        if (k !== "component" && k !== 'widget') {
          options[k] = v;
        } else {
          name = v;
        }
      });

      return buildComponentOptions(name, options);
    }
Parses the component's options from its element's data attributes.

@private
@param  {String|DomNode} el    the element
@param  {String} namespace     current Component's detected namespace
@param  {String} opts          an Object containing the base Component's options to extend.
@return {Object} An object that contains the Component's options