Cross Reference: features.js
xref
: /
yui3
/
src
/
yui
/
js
/
features.js
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
features.js revision 20ca969ecc6dfab75295a9e5dc1d3c250d17d2de
var
feature_tests
= {};
Y.
mix
(Y.
namespace
(
'Features'
), {
tests
:
feature_tests
,
add
:
function
(
cat
,
name
, o) {
feature_tests
[
cat
] =
feature_tests
[
cat
] || {};
feature_tests
[
cat
][
name
] = o;
},
all
:
function
(
cat
,
args
) {
var
cat_o
=
feature_tests
[
cat
],
// results = {};
result
= [];
if
(
cat_o
) {
Y.
Object
.
each
(
cat_o
,
function
(v, k) {
result
.
push
(k +
':'
+ (Y.
Features
.
test
(
cat
, k,
args
) ?
1
:
0
));
});
}
return
(
result
.
length
) ?
result
.
join
(
';'
) :
''
;
},
test
:
function
(
cat
,
name
,
args
) {
args
=
args
|| [];
var
result
,
ua
,
test
,
cat_o
=
feature_tests
[
cat
],
feature
=
cat_o
&&
cat_o
[
name
];
if
(!
feature
) {
Y.
log
(
'Feature test '
+
cat
+
', '
+
name
+
' not found'
);
}
else
{
result
=
feature
.
result
;
if
(Y.
Lang
.
isUndefined
(
result
)) {
ua
=
feature
.
ua
;
if
(
ua
) {
result
= (Y.
UA
[
ua
]);
}
test
=
feature
.
test
;
if
(
test
&& ((!
ua
) ||
result
)) {
result
=
test
.
apply
(Y,
args
);
}
feature
.
result
=
result
;
}
}
return
result
;
}
});
// Y.Features.add("load", "1", {});
// Y.Features.test("load", "1");
// caps=1:1;2:0;3:1;