Skip to content

Commit

Permalink
Added CustomData extension
Browse files Browse the repository at this point in the history
  • Loading branch information
otakustay committed Mar 29, 2013
1 parent f614d6a commit ec818fd
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 27 deletions.
31 changes: 31 additions & 0 deletions src/lib.js
Original file line number Diff line number Diff line change
Expand Up @@ -440,5 +440,36 @@ define(function () {
return ret;
};

/**
* 将"name:value[;name:value]"的属性值解析成Object
*
* @param {string} source 属性值源字符串
* @param {function=} 替换值的处理函数
* @return {Object}
*/
lib.parseAttribute = function (source, valueReplacer) {

This comment has been minimized.

Copy link
@errorrik

errorrik Apr 8, 2013

parseAttribute不应该放在lib里吧?lib的定位是基础库适配,应该没有任何基础库会实现这种东西……

This comment has been minimized.

Copy link
@otakustay

otakustay Apr 9, 2013

Author Member

这东西如果在helper里,main就要信息helper感觉说不过去,要么放到main中去?

This comment has been minimized.

Copy link
@errorrik

errorrik Apr 9, 2013

貌似原先就是在main中的,但是没暴露。如果有需要,可以暴露~

This comment has been minimized.

Copy link
@otakustay

otakustay Apr 9, 2013

Author Member

如果main提供这个方法,感觉main的定位也很奇怪,不过也没地方放了,我移到main去吧

This comment has been minimized.

Copy link
@errorrik

errorrik via email Apr 9, 2013

if (!source) {
return {};
}

var value = {};
var items = source.split(/\s*;\s*/);
var len = items.length;

while (len--) {
var item = items[len];
if (!item) {
continue;
}

var segment = item.split(/\s*:\s*/);
value[segment[0]] = valueReplacer ?
valueReplacer(segment[1])
: segment[1];
}

return value;
}

return lib;
});
27 changes: 1 addition & 26 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -147,31 +147,6 @@ define(
return value;
};

/**
* 将"name:value[;name:value]"的属性值解析成Object
*
* @inner
* @param {string} source 属性值源字符串
* @return {Object}
*/
function parseAttribute(source) {
var value = {};
var items = source.split(/\s*;\s*/);
var len = items.length;

while (len--) {
var item = items[len];
if (!item) {
continue;
}

var segment = item.split(/\s*:\s*/);
value[segment[0]] = valueReplacer(segment[1]);
}

return value;
}

/**
* 将字符串数组join成驼峰形式
*
Expand Down Expand Up @@ -218,7 +193,7 @@ define(
if (terms.length === 0) {
noOverrideExtend(
optionObject,
parseAttribute(value)
lib.parseAttribute(value, valueReplacer)
);
}
else {
Expand Down
3 changes: 2 additions & 1 deletion test/run.htm
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
<script>
var container = document.getElementById('container');
var suits = [
'esui', 'controlHelper', 'Control', 'Label', 'Panel'
'esui', 'controlHelper', 'Control', 'Label', 'Panel',
'extension/CustomData'
];
require(
suits,
Expand Down

0 comments on commit ec818fd

Please sign in to comment.