|
@@ -125,6 +125,24 @@ referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.TrappedPlainModel);
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
+"_watch_do_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "watch:do:",
|
|
|
+category: 'action',
|
|
|
+fn: function (path,aBlock){
|
|
|
+var self=this;
|
|
|
+smalltalk.send((function(){
|
|
|
+return smalltalk.send(self,"_read_do_",[path,aBlock]);
|
|
|
+}),"_fork",[]);
|
|
|
+return self},
|
|
|
+args: ["path", "aBlock"],
|
|
|
+source: "watch: path do: aBlock\x0a\x09[ self read: path do: aBlock ] fork",
|
|
|
+messageSends: ["fork", "read:do:"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedPlainModel);
|
|
|
+
|
|
|
|
|
|
smalltalk.addMethod(
|
|
|
"_start",
|
|
@@ -478,16 +496,14 @@ actual=smalltalk.send((smalltalk.Trapped || Trapped),"_path",[]);
|
|
|
actual;
|
|
|
model=smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_byName_",[smalltalk.send(actual,"_first",[])]);
|
|
|
model;
|
|
|
-return smalltalk.send((function(){
|
|
|
-return smalltalk.send(model,"_read_do_",[smalltalk.send(actual,"_allButFirst",[]),(function(data){
|
|
|
+return smalltalk.send(model,"_watch_do_",[smalltalk.send(actual,"_allButFirst",[]),(function(data){
|
|
|
return smalltalk.send(aBlock,"_value_value_",[self,data]);
|
|
|
})]);
|
|
|
-}),"_fork",[]);
|
|
|
})]);
|
|
|
return self},
|
|
|
args: ["path", "aBlock"],
|
|
|
-source: "trap: path read: aBlock\x0a\x09path trapDescend: [ | actual model |\x0a \x09actual := Trapped path.\x0a model := Trapped current byName: actual first.\x0a \x09\x22TODO register for later\x22\x0a [ model read: actual allButFirst do: [ :data |\x0a \x09aBlock value: self value: data\x0a \x09]] fork\x0a ]",
|
|
|
-messageSends: ["trapDescend:", "path", "byName:", "first", "current", "fork", "read:do:", "allButFirst", "value:value:"],
|
|
|
+source: "trap: path read: aBlock\x0a\x09path trapDescend: [ | actual model |\x0a \x09actual := Trapped path.\x0a model := Trapped current byName: actual first.\x0a model watch: actual allButFirst do: [ :data |\x0a \x09aBlock value: self value: data\x0a \x09]\x0a ]",
|
|
|
+messageSends: ["trapDescend:", "path", "byName:", "first", "current", "watch:do:", "allButFirst", "value:value:"],
|
|
|
referencedClasses: ["Trapped"]
|
|
|
}),
|
|
|
smalltalk.TagBrush);
|