|
@@ -1,4 +1,132 @@
|
|
|
smalltalk.addPackage('Trapped-Frontend', {});
|
|
|
+smalltalk.addClass('TrappedFly', smalltalk.Object, [], 'Trapped-Frontend');
|
|
|
+smalltalk.addMethod(
|
|
|
+"_name",
|
|
|
+smalltalk.method({
|
|
|
+selector: "name",
|
|
|
+category: 'action',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+var $1;
|
|
|
+$1=smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]);
|
|
|
+return $1;
|
|
|
+},
|
|
|
+args: [],
|
|
|
+source: "name\x0a\x09^ self class name",
|
|
|
+messageSends: ["name", "class"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedFly);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_start",
|
|
|
+smalltalk.method({
|
|
|
+selector: "start",
|
|
|
+category: 'action',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
|
|
|
+return self},
|
|
|
+args: [],
|
|
|
+source: "start\x0a\x09Trapped current register: self name: self name",
|
|
|
+messageSends: ["register:name:", "name", "current"],
|
|
|
+referencedClasses: ["Trapped"]
|
|
|
+}),
|
|
|
+smalltalk.TrappedFly);
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_start",
|
|
|
+smalltalk.method({
|
|
|
+selector: "start",
|
|
|
+category: 'action',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(smalltalk.send(self,"_new",[]),"_start",[]);
|
|
|
+return self},
|
|
|
+args: [],
|
|
|
+source: "start\x0a\x09self new start",
|
|
|
+messageSends: ["start", "new"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedFly.klass);
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('TrappedPathStack', smalltalk.Object, ['elements'], 'Trapped-Frontend');
|
|
|
+smalltalk.addMethod(
|
|
|
+"_append_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "append:",
|
|
|
+category: 'descending',
|
|
|
+fn: function (anArray){
|
|
|
+var self=this;
|
|
|
+self["@elements"]=smalltalk.send(self["@elements"],"__comma",[anArray]);
|
|
|
+return self},
|
|
|
+args: ["anArray"],
|
|
|
+source: "append: anArray\x0a elements := elements, anArray",
|
|
|
+messageSends: [","],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedPathStack);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_elements",
|
|
|
+smalltalk.method({
|
|
|
+selector: "elements",
|
|
|
+category: 'accessing',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return self["@elements"];
|
|
|
+},
|
|
|
+args: [],
|
|
|
+source: "elements\x0a\x09^elements",
|
|
|
+messageSends: [],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedPathStack);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_initialize",
|
|
|
+smalltalk.method({
|
|
|
+selector: "initialize",
|
|
|
+category: 'initializing',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+self["@elements"]=[];
|
|
|
+return self},
|
|
|
+args: [],
|
|
|
+source: "initialize\x0a\x09elements := #().",
|
|
|
+messageSends: [],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedPathStack);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_with_do_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "with:do:",
|
|
|
+category: 'descending',
|
|
|
+fn: function (anArray,aBlock){
|
|
|
+var self=this;
|
|
|
+var old;
|
|
|
+old=self["@elements"];
|
|
|
+smalltalk.send((function(){
|
|
|
+smalltalk.send(self,"_append_",[anArray]);
|
|
|
+return smalltalk.send(aBlock,"_value",[]);
|
|
|
+}),"_ensure_",[(function(){
|
|
|
+self["@elements"]=old;
|
|
|
+return self["@elements"];
|
|
|
+})]);
|
|
|
+return self},
|
|
|
+args: ["anArray", "aBlock"],
|
|
|
+source: "with: anArray do: aBlock\x0a\x09| old |\x0a old := elements.\x0a [ self append: anArray.\x0a\x09aBlock value ] ensure: [ elements := old ]",
|
|
|
+messageSends: ["ensure:", "append:", "value"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedPathStack);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
smalltalk.addClass('TrappedSingleton', smalltalk.Object, [], 'Trapped-Frontend');
|
|
|
smalltalk.addMethod(
|
|
|
"_start",
|
|
@@ -125,8 +253,6 @@ var jq;
|
|
|
var viewName;
|
|
|
var modelName;
|
|
|
var tokens;
|
|
|
-var model;
|
|
|
-var view;
|
|
|
jq=smalltalk.send(elem,"_asJQuery",[]);
|
|
|
jq;
|
|
|
trap=smalltalk.send(jq,"_attr_",["data-trap"]);
|
|
@@ -137,55 +263,67 @@ viewName=smalltalk.send(tokens,"_first",[]);
|
|
|
viewName;
|
|
|
modelName=smalltalk.send(tokens,"_second",[]);
|
|
|
modelName;
|
|
|
-model=smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_byName_",[modelName]);
|
|
|
-model;
|
|
|
+return smalltalk.send((smalltalk.Trapped || Trapped),"_with_do_",[[modelName],(function(){
|
|
|
return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_at_",[viewName]),"_new",[]),"_appendToJQuery_",[jq]);
|
|
|
})]);
|
|
|
+})]);
|
|
|
return self},
|
|
|
args: [],
|
|
|
-source: "start\x0a\x09'[data-trap]' asJQuery each: [ :index :elem |\x0a \x09| trap jq viewName modelName tokens model view |\x0a jq := elem asJQuery.\x0a trap := jq attr: 'data-trap'.\x0a tokens := trap tokenize: ':'.\x0a viewName := tokens first.\x0a modelName := tokens second.\x0a \x09model := Trapped current byName: modelName.\x0a \x22TODO do something with model\x22\x0a (Smalltalk current at: viewName) new appendToJQuery: jq.\x0a ]",
|
|
|
-messageSends: ["each:", "asJQuery", "attr:", "tokenize:", "first", "second", "byName:", "current", "appendToJQuery:", "new", "at:"],
|
|
|
-referencedClasses: ["Trapped", "Smalltalk"]
|
|
|
+source: "start\x0a\x09'[data-trap]' asJQuery each: [ :index :elem |\x0a \x09| trap jq viewName modelName tokens |\x0a jq := elem asJQuery.\x0a trap := jq attr: 'data-trap'.\x0a tokens := trap tokenize: ':'.\x0a viewName := tokens first.\x0a modelName := tokens second.\x0a Trapped with: { modelName } do: [(Smalltalk current at: viewName) new appendToJQuery: jq].\x0a ]",
|
|
|
+messageSends: ["each:", "asJQuery", "attr:", "tokenize:", "first", "second", "with:do:", "appendToJQuery:", "new", "at:", "current"],
|
|
|
+referencedClasses: ["Smalltalk", "Trapped"]
|
|
|
}),
|
|
|
smalltalk.Trapped);
|
|
|
|
|
|
|
|
|
+smalltalk.Trapped.klass.iVarNames = ['path'];
|
|
|
+smalltalk.addMethod(
|
|
|
+"_initialize",
|
|
|
+smalltalk.method({
|
|
|
+selector: "initialize",
|
|
|
+category: 'initialization',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+self["@path"]=smalltalk.send((smalltalk.TrappedPathStack || TrappedPathStack),"_new",[]);
|
|
|
+return self},
|
|
|
+args: [],
|
|
|
+source: "initialize\x0a\x09path := TrappedPathStack new",
|
|
|
+messageSends: ["new"],
|
|
|
+referencedClasses: ["TrappedPathStack"]
|
|
|
+}),
|
|
|
+smalltalk.Trapped.klass);
|
|
|
|
|
|
-smalltalk.addClass('TrappedFly', smalltalk.TrappedSingleton, [], 'Trapped-Frontend');
|
|
|
smalltalk.addMethod(
|
|
|
-"_name",
|
|
|
+"_path",
|
|
|
smalltalk.method({
|
|
|
-selector: "name",
|
|
|
-category: 'action',
|
|
|
+selector: "path",
|
|
|
+category: 'accessing',
|
|
|
fn: function (){
|
|
|
var self=this;
|
|
|
-var $1;
|
|
|
-$1=smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]);
|
|
|
-return $1;
|
|
|
+return self["@path"];
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "name\x0a\x09^ self class name",
|
|
|
-messageSends: ["name", "class"],
|
|
|
+source: "path\x0a\x09^path",
|
|
|
+messageSends: [],
|
|
|
referencedClasses: []
|
|
|
}),
|
|
|
-smalltalk.TrappedFly);
|
|
|
+smalltalk.Trapped.klass);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
|
-"_start",
|
|
|
+"_with_do_",
|
|
|
smalltalk.method({
|
|
|
-selector: "start",
|
|
|
+selector: "with:do:",
|
|
|
category: 'action',
|
|
|
-fn: function (){
|
|
|
+fn: function (anArray,aBlock){
|
|
|
var self=this;
|
|
|
-smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
|
|
|
+smalltalk.send(self["@path"],"_with_do_",[anArray,aBlock]);
|
|
|
return self},
|
|
|
-args: [],
|
|
|
-source: "start\x0a\x09Trapped current register: self name: self name",
|
|
|
-messageSends: ["register:name:", "name", "current"],
|
|
|
-referencedClasses: ["Trapped"]
|
|
|
+args: ["anArray", "aBlock"],
|
|
|
+source: "with: anArray do: aBlock\x0a\x09path with: anArray do: aBlock",
|
|
|
+messageSends: ["with:do:"],
|
|
|
+referencedClasses: []
|
|
|
}),
|
|
|
-smalltalk.TrappedFly);
|
|
|
-
|
|
|
+smalltalk.Trapped.klass);
|
|
|
|
|
|
|
|
|
smalltalk.addClass('TrappedView', smalltalk.Widget, [], 'Trapped-Frontend');
|
|
@@ -197,12 +335,12 @@ category: 'rendering',
|
|
|
fn: function (html){
|
|
|
var self=this;
|
|
|
smalltalk.send(smalltalk.send(html,"_root",[]),"_empty",[]);
|
|
|
-smalltalk.send(html,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]),"__comma",[": contents"])]);
|
|
|
+smalltalk.send(html,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]),"__comma",[": "]),"__comma",[smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_path",[]),"_elements",[])])]);
|
|
|
return self},
|
|
|
args: ["html"],
|
|
|
-source: "renderOn: html\x0a\x09html root empty.\x0a\x09html with: self class name, ': contents'",
|
|
|
-messageSends: ["empty", "root", "with:", ",", "name", "class"],
|
|
|
-referencedClasses: []
|
|
|
+source: "renderOn: html\x0a\x09html root empty.\x0a\x09html with: self class name, ': ', Trapped path elements",
|
|
|
+messageSends: ["empty", "root", "with:", ",", "elements", "path", "name", "class"],
|
|
|
+referencedClasses: ["Trapped"]
|
|
|
}),
|
|
|
smalltalk.TrappedView);
|
|
|
|