Skip to content

@Raynos /pd.can secret
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Array = require("Array")
pd = {}
pd.bindAll = bindAll
pd.extend = extend
pd.Name = Name
return pd
extend(target, ...sources) {
Array.forEach(sources, (elem) {
Array.forEach(keysof elem, (name) {
target[name] = elem[name]
})
})
return target
}
namespace(object, key) {
privates = new object
valueOf = object.valueOf
object.valueOf = (self, value) {
if (value == key) {
return privates
}
return valueOf(self, value)
}
return privates
}
Name() {
key = {}
return name
name(object) {
privates = object:valueOf(key)
if (privates == object) {
return namespace(object, key)
}
return privates
}
}
bindAll(obj, ...sources) {
pd.extend(obj, ...sources)
Array.forEach(Array.filter(keysof obj, isMethod), bindMethods)
return obj
isMethod(name) {
return typeof obj[name] == "function"
}
bindMethods(name) {
f = obj[name]
obj[name] = (...args) {
f(obj, ...args)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.