mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
DRY up the open, write, read, and close methods on the File prototype.
This commit is contained in:
28
lib/file.js
28
lib/file.js
@@ -108,17 +108,16 @@ proto._maybeDispatch = function () {
|
||||
debugObject(self.currentAction);
|
||||
|
||||
args = self.currentAction.args || [];
|
||||
method = self.currentAction.method;
|
||||
|
||||
if (self.currentAction.method !== "open") {
|
||||
|
||||
if (method !== "open") {
|
||||
args.unshift(self.fd);
|
||||
}
|
||||
|
||||
method = self.currentAction.method;
|
||||
|
||||
if (!args[3] && (method === "read" || method === "write")) {
|
||||
args[3] = self.encoding;
|
||||
}
|
||||
|
||||
promise = node.fs[method].apply(self, args);
|
||||
|
||||
userPromise = self.currentAction.promise;
|
||||
@@ -144,21 +143,10 @@ proto._queueAction = function (method, args) {
|
||||
return userPromise;
|
||||
};
|
||||
|
||||
// FIXME the following can probably be DRY'd up with some fancy getter
|
||||
// stuff.
|
||||
|
||||
proto.open = function (filename, flags, mode) {
|
||||
return this._queueAction("open", [filename, flags, mode]);
|
||||
};
|
||||
(["open", "write", "read", "close"]).forEach(function (name) {
|
||||
proto[name] = function () {
|
||||
return this._queueAction(name, Array.prototype.slice.call(arguments, 0));
|
||||
};
|
||||
});
|
||||
|
||||
proto.write = function (data, pos, encoding) {
|
||||
return this._queueAction("write", [data, pos, encoding]);
|
||||
};
|
||||
|
||||
proto.read = function (length, pos, encoding) {
|
||||
return this._queueAction("read", [length, pos, encoding]);
|
||||
};
|
||||
|
||||
proto.close = function () {
|
||||
return this._queueAction("close");
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user