The Kernel module
Ruby’s Kernel module defines the methods common to all objects. Similarly,
the Kernel module in jsclass defines methods shared by all objects
(including class and module objects). Every object created using Class has
these methods, though they may be overridden depending on the object’s type.
object.__eigen__()
Returns the object’s “metamodule”, a module used to store any singleton methods
attached to the object. Calling __eigen__() on a class or module returns a
module used to store its class methods.
object.enumFor(methodName, *args)
Returns an Enumerator (see Enumerable) for the object
using the given methodName and optional arguments. For example, the
Enumerator generated by Enumerable#forEachCons is generated as follows:
forEachCons: function(n, block, context) {
if (!block) return this.enumFor('forEachCons', n);
// forEachCons implementation details ...
}
object.equals(other)
Returns true iff object and other are the same object. This can be
overridden to provide more meaningful equality tests. If you want to use an
object as a key in a Hash you must also override Kernel#hash()
(see below).
object.extend(module)
Adds the methods from module as singleton methods
to object.
object.hash()
Returns a hashcode for the object, which is used by Hash when
storing keys. The default implementation returns a unique hexadecimal number
for each object. If two objects are equal according to the equals() method,
they must both return the same hashcode otherwise they will not work correctly
as keys in a Hash or as members of a Set.
object.isA(type)
Returns true iff object is an instance of the given type, which should
be a class or module. If type is anywhere in object’s inheritance
hierarchy this method will return true.
object.method(name)
Returns a copy of the method with the given name from object, as a
standalone function bound to object’s instance variables. See method binding.
object.tap(block, context)
Calls the function block in the given (optional) context, passing object
as a parameter to block, and returns object. Useful for inspecting
intermediate values in a long method chain. For example:
list .tap(function(x) { console.log("original: ", x) })
.toArray() .tap(function(x) { console.log("array: ", x) })
.select(condition) .tap(function(x) { console.log("evens: ", x) })
.map(square) .tap(function(x) { console.log("squares: ", x) });