code: function parse(obj) {
          if (!obj) {
            return;
          }
          // Function syntax
          if (angular.isFunction(obj)) {
            obj = angular.copy($injector.invoke(obj));
          }
          // String syntax
          if (angular.isString(obj)) {
            obj = angular.extend({
              href: obj
            }, options);
          }
          // Array of strings syntax
          if (angular.isArray(obj) && angular.isString(obj[0])) {
            angular.forEach(obj, function (item) {
              obj = angular.extend({
                href: item
              }, options);
            });
          }
          // Object syntax
          if (angular.isObject(obj) && !angular.isArray(obj)) {
            obj = angular.extend({}, options, obj);
          }
          // Array of objects syntax
          if (angular.isArray(obj) && angular.isObject(obj[0])) {
            angular.forEach(obj, function (item) {
              obj = angular.extend(item, options);
            });
          }
          // Map breakpoint to media attribute
          mapBreakpointToMedia(obj);
          return obj;
        }
docs: Parse: returns array with full all object based on defaults