Skip to content

Commit ce42cac

Browse files
committed
Added collector to emit mutations when subscribe into another object
1 parent 935449b commit ce42cac

File tree

5 files changed

+14
-7
lines changed

5 files changed

+14
-7
lines changed

src/api/getObject.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,4 @@ dop.getObjectRoot = function(object) {
3838

3939
dop.getObjectTarget = function(object) {
4040
return dop.getObjectDop(object).t;
41-
};
42-
43-
dop.isRegistered = function (object) {
44-
return (isObject(object) && dop.getObjectDop(object) !== undefined);
4541
};

src/api/isRegistered.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
dop.isRegistered = function (object) {
3+
return (isObject(object) && dop.getObjectDop(object) !== undefined);
4+
};

src/api/setAction.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
dop.setAction = function(actions) {
33
var collector = dop.collectFirst(), object_id;
44
for (object_id in actions)
5-
dop.util.path({a:actions[object_id].action}, null, {a:actions[object_id].object}, dop.core.setAction);
5+
dop.core.setAction(actions[object_id].object, actions[object_id].action);
66
return collector;
77
};

src/core/objects/setAction.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11

2-
dop.core.setAction = function(destiny, prop, value, typeofValue, path) {
2+
dop.core.setAction = function(object, action) {
3+
dop.util.path({a:action}, null, {a:object}, dop.core.setActionMutator);
4+
return object;
5+
};
6+
7+
dop.core.setActionMutator = function(destiny, prop, value, typeofValue, path) {
38

49
// if (path.length > 1) {
510

src/protocol/_onsubscribe.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ dop.protocol._onsubscribe = function(node, request_id, request, response) {
1313
object;
1414

1515
if (node.object_owner[object_owner_id] === undefined) {
16+
var collector = dop.collectFirst();
1617
object = dop.register((dop.isObjectRegistrable(request.into)) ?
17-
dop.util.merge(request.into, object_owner)
18+
dop.core.setAction(request.into, object_owner)
1819
:
1920
object_owner);
2021
dop.core.registerOwner(node, object, object_owner_id);
22+
collector.emitAndDestroy();
2123
}
2224
else
2325
object = dop.data.object[node.object_owner[object_owner_id]].object;

0 commit comments

Comments
 (0)