Comparing version 0.0.4 to 0.0.5
@@ -448,10 +448,11 @@ (function () { | ||
if (!(obj instanceof Base)) { | ||
var base = {}, instance = (base.instance = {"__extender__": _extender}); | ||
var OurBase = Base; | ||
for (i = 0, l = defined.length; i < l; i++) { | ||
var definer = defined[i]; | ||
if (definer[0](obj)) { | ||
merge(instance, definer[1]); | ||
OurBase = OurBase.extend({instance: definer[1]}); | ||
} | ||
} | ||
ret = new (Base.extend(base))(obj); | ||
ret = new OurBase(obj); | ||
ret["__extender__"] = _extender; | ||
} | ||
@@ -474,2 +475,12 @@ return ret; | ||
decorateProto(proto, decorate); | ||
//handle browsers like which skip over the constructor while looping | ||
if (!proto.hasOwnProperty("constructor")) { | ||
if (decorate.hasOwnProperty("constructor")) { | ||
addMethod(proto, "constructor", decorate.constructor); | ||
} else { | ||
proto.constructor = function () { | ||
this._super(arguments); | ||
}; | ||
} | ||
} | ||
defined.push([tester, proto]); | ||
@@ -476,0 +487,0 @@ } |
{ | ||
"name": "extender", | ||
"version": "0.0.4", | ||
"version": "0.0.5", | ||
"description": "Easily create object decorators!", | ||
@@ -22,9 +22,19 @@ "main": "index.js", | ||
"license": "MIT", | ||
"testling": { | ||
"files": "test/browserling.js", | ||
"browsers": { | ||
"ie": [6, 7, 8, 9], | ||
"chrome": [4, 23, "canary"], | ||
"firefox": [3, 3.5, 3.6, 4, 17, "nightly"], | ||
"opera": [10, 10.5, 11, 11.5, 11.6, 12, "next"], | ||
"safari": ["5.0.1", 5.1] | ||
} | ||
}, | ||
"dependencies": { | ||
"declare.js": "0.0.3" | ||
"declare.js": "~0.0.4" | ||
}, | ||
"devDependencies": { | ||
"it": "~0.1.0", | ||
"it": "~0.2.0", | ||
"grunt-it": "~0.2.0" | ||
} | ||
} |
<a name="top"></a> | ||
[![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender) | ||
[![build status](https://secure.travis-ci.org/doug-martin/extender.png)](http://travis-ci.org/doug-martin/extender) | ||
[![browser support](http://ci.testling.com/doug-martin/extender.png)](http://ci.testling.com/doug-martin/extender) | ||
# Extender | ||
@@ -6,0 +9,0 @@ |
@@ -11,19 +11,19 @@ "use strict"; | ||
var isMethods = { | ||
isFunction: is.function, | ||
isNumber: is.number, | ||
isString: is.string, | ||
isDate: is.date, | ||
isArray: is.array, | ||
isBoolean: is.boolean, | ||
isUndefined: is.undefined, | ||
isDefined: is.defined, | ||
isUndefinedOrNull: is.undefinedOrNull, | ||
isNull: is.null, | ||
isArguments: is.arguments, | ||
isInstanceOf: is.instanceOf, | ||
isRegExp: is.regExp | ||
isFunction: is.isFunction, | ||
isNumber: is.isNumber, | ||
isString: is.isString, | ||
isDate: is.isDate, | ||
isArray: is.isArray, | ||
isBoolean: is.isBoolean, | ||
isUndefined: is.isUndefined, | ||
isDefined: is.isDefined, | ||
isUndefinedOrNull: is.isUndefinedOrNull, | ||
isNull: is.isNull, | ||
isArguments: is.isArguments, | ||
isInstanceOf: is.isInstanceOf, | ||
isRegExp: is.isRegExp | ||
}; | ||
var myExtender = extender | ||
.define(isMethods) | ||
.define(is.string, { | ||
.define(is.isString, { | ||
multiply: function (str, times) { | ||
@@ -57,3 +57,3 @@ var ret = str; | ||
}) | ||
.define(is.array, { | ||
.define(is.isArray, { | ||
pluck: function (arr, m) { | ||
@@ -77,3 +77,3 @@ var ret = []; | ||
}) | ||
.define(is.boolean, { | ||
.define(is.isBoolean, { | ||
@@ -142,15 +142,15 @@ invert: function (val) { | ||
.define({ | ||
isFunction: is.function, | ||
isNumber: is.number, | ||
isString: is.string, | ||
isDate: is.date, | ||
isArray: is.array, | ||
isBoolean: is.boolean, | ||
isUndefined: is.undefined, | ||
isDefined: is.defined, | ||
isUndefinedOrNull: is.undefinedOrNull, | ||
isNull: is.null, | ||
isArguments: is.arguments, | ||
isInstanceOf: is.instanceOf, | ||
isRegExp: is.regExp | ||
isFunction: is.isFunction, | ||
isNumber: is.isNumber, | ||
isString: is.isString, | ||
isDate: is.isDate, | ||
isArray: is.isArray, | ||
isBoolean: is.isBoolean, | ||
isUndefined: is.isUndefined, | ||
isDefined: is.isDefined, | ||
isUndefinedOrNull: is.isUndefinedOrNull, | ||
isNull: is.isNull, | ||
isArguments: is.isArguments, | ||
isInstanceOf: is.isInstanceOf, | ||
isRegExp: is.isRegExp | ||
}); | ||
@@ -171,3 +171,3 @@ | ||
.expose(isMethods); | ||
var myExtender2 = extender.define(is.array, { | ||
var myExtender2 = extender.define(is.isArray, { | ||
pluck: function (arr, m) { | ||
@@ -212,3 +212,25 @@ var ret = []; | ||
it.describe("custom extenders with constructors", function (it) { | ||
var myExtender = extender.define({ | ||
constructor: function (value) { | ||
this.valueType = Object.prototype.toString.call(value); | ||
}, | ||
}).run(); | ||
noWrap: { | ||
stringType: function () { | ||
return this.valueType; | ||
} | ||
} | ||
}); | ||
it.should("invoke the constructor", function () { | ||
assert.equal(myExtender("string").stringType(), "[object String]"); | ||
}); | ||
it.should("call super properly", function () { | ||
assert.equal(myExtender("hello").value(), "hello"); | ||
}); | ||
}); | ||
}); |
@@ -68,14 +68,14 @@ | ||
exports.function = isFunction; | ||
exports.number = isNumber; | ||
exports.string = isString; | ||
exports.date = isDate; | ||
exports.array = isArray; | ||
exports.boolean = isBoolean; | ||
exports.undefined = isUndefined; | ||
exports.defined = isDefined; | ||
exports.undefinedOrNull = isUndefinedOrNull; | ||
exports.null = isNull; | ||
exports.arguments = isArguments; | ||
exports.instanceOf = isInstanceOf; | ||
exports.regExp = isRegExp; | ||
exports.isFunction = isFunction; | ||
exports.isNumber = isNumber; | ||
exports.isString = isString; | ||
exports.isDate = isDate; | ||
exports.isArray = isArray; | ||
exports.isBoolean = isBoolean; | ||
exports.isUndefined = isUndefined; | ||
exports.isDefined = isDefined; | ||
exports.isUndefinedOrNull = isUndefinedOrNull; | ||
exports.isNull = isNull; | ||
exports.isArguments = isArguments; | ||
exports.isInstanceOf = isInstanceOf; | ||
exports.isRegExp = isRegExp; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
42173
12
827
312
+ Addeddeclare.js@0.0.8(transitive)
- Removeddeclare.js@0.0.3(transitive)
Updateddeclare.js@~0.0.4