|  | @@ -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);
 |