Sfoglia il codice sorgente

Add methods I miss in String and jQuery + tests

- add tag script  - add jQuery>>find: + tests  - add
String>>includelSubString: + tests  - upgrade to jquery 1.6.2
Laurent Laffont 12 anni fa
parent
commit
0f889d2045

+ 30 - 0
js/Canvas.deploy.js

@@ -753,6 +753,21 @@ referencedClasses: []
 }),
 smalltalk.HTMLCanvas);
 
+smalltalk.addMethod(
+'_script',
+smalltalk.method({
+selector: 'script',
+category: 'tags',
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_tag_", ["script"]);
+return self;},
+source: unescape('script%0A%20%20%20%20%5Eself%20tag%3A%20%27script%27'),
+messageSends: ["tag:"],
+referencedClasses: []
+}),
+smalltalk.HTMLCanvas);
+
 
 smalltalk.addMethod(
 '_onJQuery_',
@@ -1229,6 +1244,21 @@ referencedClasses: []
 }),
 smalltalk.TagBrush);
 
+smalltalk.addMethod(
+'_type_',
+smalltalk.method({
+selector: 'type:',
+category: 'attributes',
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_at_put_", ["type", aString]);
+return self;},
+source: unescape('type%3A%20aString%0A%20%20%20%20self%20at%3A%20%27type%27%20put%3A%20aString'),
+messageSends: ["at:put:"],
+referencedClasses: []
+}),
+smalltalk.TagBrush);
+
 
 smalltalk.addMethod(
 '_fromString_canvas_',

+ 30 - 0
js/Canvas.js

@@ -753,6 +753,21 @@ referencedClasses: []
 }),
 smalltalk.HTMLCanvas);
 
+smalltalk.addMethod(
+'_script',
+smalltalk.method({
+selector: 'script',
+category: 'tags',
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_tag_", ["script"]);
+return self;},
+source: unescape('script%0A%20%20%20%20%5Eself%20tag%3A%20%27script%27'),
+messageSends: ["tag:"],
+referencedClasses: []
+}),
+smalltalk.HTMLCanvas);
+
 
 smalltalk.addMethod(
 '_onJQuery_',
@@ -1229,6 +1244,21 @@ referencedClasses: []
 }),
 smalltalk.TagBrush);
 
+smalltalk.addMethod(
+'_type_',
+smalltalk.method({
+selector: 'type:',
+category: 'attributes',
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_at_put_", ["type", aString]);
+return self;},
+source: unescape('type%3A%20aString%0A%20%20%20%20self%20at%3A%20%27type%27%20put%3A%20aString'),
+messageSends: ["at:put:"],
+referencedClasses: []
+}),
+smalltalk.TagBrush);
+
 
 smalltalk.addMethod(
 '_fromString_canvas_',

+ 51 - 0
js/JQuery-Tests.deploy.js

@@ -0,0 +1,51 @@
+smalltalk.addClass('JQueryTest', smalltalk.TestCase, ['document'], 'JQuery-Tests');
+smalltalk.addMethod(
+'_testFind',
+smalltalk.method({
+selector: 'testFind',
+category: 'tests',
+fn: function (){
+var self=this;
+smalltalk.send(self, "_assert_equals_", ["James", smalltalk.send(smalltalk.send(smalltalk.send(self['@document'], "_asJQuery", []), "_find_", ["li.firstname"]), "_html", [])]);
+return self;},
+source: unescape('testFind%0A%09self%20%0A%09%09assert%3A%20%27James%27%20%0A%09%09equals%3A%20%28document%20asJQuery%20find%3A%20%27li.firstname%27%29%20html.%20'),
+messageSends: ["assert:equals:", "html", "find:", "asJQuery"],
+referencedClasses: []
+}),
+smalltalk.JQueryTest);
+
+smalltalk.addMethod(
+'_setUp',
+smalltalk.method({
+selector: 'setUp',
+category: 'running',
+fn: function (){
+var self=this;
+self['@document']=unescape("%3Cdiv%20class%3D%22person%22%3E%0A%09%09%09%09%3Cul%3E%0A%09%09%09%09%09%3Cli%20class%3D%22firstname%22%3EJames%3C/li%3E%0A%09%09%09%09%09%3Cli%20class%3D%22lastname%22%3EBond%3C/li%3E%0A%09%09%09%09%3C/ul%3E%0A%09%09%09%3C/div%3E");
+return self;},
+source: unescape('setUp%0A%09document%20%3A%3D%20%27%3Cdiv%20class%3D%22person%22%3E%0A%09%09%09%09%3Cul%3E%0A%09%09%09%09%09%3Cli%20class%3D%22firstname%22%3EJames%3C/li%3E%0A%09%09%09%09%09%3Cli%20class%3D%22lastname%22%3EBond%3C/li%3E%0A%09%09%09%09%3C/ul%3E%0A%09%09%09%3C/div%3E%27.'),
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.JQueryTest);
+
+smalltalk.addMethod(
+'_testEach',
+smalltalk.method({
+selector: 'testEach',
+category: 'tests',
+fn: function (){
+var self=this;
+var classes=nil;
+classes=smalltalk.send(smalltalk.Array, "_new", []);
+smalltalk.send(smalltalk.send(smalltalk.send(self['@document'], "_asJQuery", []), "_find_", ["li"]), "_each_", [(function(index, element){return smalltalk.send(classes, "_add_", [smalltalk.send(smalltalk.send(smalltalk.JQuery, "_fromElement_", [element]), "_attr_", ["class"])]);})]);
+smalltalk.send(self, "_assert_equals_", [smalltalk.send(["firstname", "lastname"], "_printString", []), smalltalk.send(classes, "_printString", [])]);
+return self;},
+source: unescape('testEach%0A%09%7Cclasses%7C%0A%09classes%20%3A%3D%20Array%20new.%0A%0A%09%28document%20asJQuery%20find%3A%20%27li%27%29%20each%3A%20%5B%3Aindex%20%3Aelement%7C%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%20%20%09classes%20add%3A%20%28%28JQuery%20fromElement%3Aelement%29%20attr%3A%20%27class%27%29%5D.%0A%09self%20%0A%09%09assert%3A%20%23%28%27firstname%27%20%27lastname%27%29%20printString%0A%09%09equals%3A%20classes%20printString'),
+messageSends: ["new", "each:", "find:", "asJQuery", "add:", "attr:", "fromElement:", "assert:equals:", "printString"],
+referencedClasses: [smalltalk.Array,smalltalk.JQuery]
+}),
+smalltalk.JQueryTest);
+
+
+

+ 51 - 0
js/JQuery-Tests.js

@@ -0,0 +1,51 @@
+smalltalk.addClass('JQueryTest', smalltalk.TestCase, ['document'], 'JQuery-Tests');
+smalltalk.addMethod(
+'_testFind',
+smalltalk.method({
+selector: 'testFind',
+category: 'tests',
+fn: function (){
+var self=this;
+smalltalk.send(self, "_assert_equals_", ["James", smalltalk.send(smalltalk.send(smalltalk.send(self['@document'], "_asJQuery", []), "_find_", ["li.firstname"]), "_html", [])]);
+return self;},
+source: unescape('testFind%0A%09self%20%0A%09%09assert%3A%20%27James%27%20%0A%09%09equals%3A%20%28document%20asJQuery%20find%3A%20%27li.firstname%27%29%20html.%20'),
+messageSends: ["assert:equals:", "html", "find:", "asJQuery"],
+referencedClasses: []
+}),
+smalltalk.JQueryTest);
+
+smalltalk.addMethod(
+'_setUp',
+smalltalk.method({
+selector: 'setUp',
+category: 'running',
+fn: function (){
+var self=this;
+self['@document']=unescape("%3Cdiv%20class%3D%22person%22%3E%0A%09%09%09%09%3Cul%3E%0A%09%09%09%09%09%3Cli%20class%3D%22firstname%22%3EJames%3C/li%3E%0A%09%09%09%09%09%3Cli%20class%3D%22lastname%22%3EBond%3C/li%3E%0A%09%09%09%09%3C/ul%3E%0A%09%09%09%3C/div%3E");
+return self;},
+source: unescape('setUp%0A%09document%20%3A%3D%20%27%3Cdiv%20class%3D%22person%22%3E%0A%09%09%09%09%3Cul%3E%0A%09%09%09%09%09%3Cli%20class%3D%22firstname%22%3EJames%3C/li%3E%0A%09%09%09%09%09%3Cli%20class%3D%22lastname%22%3EBond%3C/li%3E%0A%09%09%09%09%3C/ul%3E%0A%09%09%09%3C/div%3E%27.'),
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.JQueryTest);
+
+smalltalk.addMethod(
+'_testEach',
+smalltalk.method({
+selector: 'testEach',
+category: 'tests',
+fn: function (){
+var self=this;
+var classes=nil;
+classes=smalltalk.send(smalltalk.Array, "_new", []);
+smalltalk.send(smalltalk.send(smalltalk.send(self['@document'], "_asJQuery", []), "_find_", ["li"]), "_each_", [(function(index, element){return smalltalk.send(classes, "_add_", [smalltalk.send(smalltalk.send(smalltalk.JQuery, "_fromElement_", [element]), "_attr_", ["class"])]);})]);
+smalltalk.send(self, "_assert_equals_", [smalltalk.send(["firstname", "lastname"], "_printString", []), smalltalk.send(classes, "_printString", [])]);
+return self;},
+source: unescape('testEach%0A%09%7Cclasses%7C%0A%09classes%20%3A%3D%20Array%20new.%0A%0A%09%28document%20asJQuery%20find%3A%20%27li%27%29%20each%3A%20%5B%3Aindex%20%3Aelement%7C%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%20%20%09classes%20add%3A%20%28%28JQuery%20fromElement%3Aelement%29%20attr%3A%20%27class%27%29%5D.%0A%09self%20%0A%09%09assert%3A%20%23%28%27firstname%27%20%27lastname%27%29%20printString%0A%09%09equals%3A%20classes%20printString'),
+messageSends: ["new", "each:", "find:", "asJQuery", "add:", "attr:", "fromElement:", "assert:equals:", "printString"],
+referencedClasses: [smalltalk.Array,smalltalk.JQuery]
+}),
+smalltalk.JQueryTest);
+
+
+

+ 15 - 0
js/JQuery.deploy.js

@@ -660,6 +660,21 @@ referencedClasses: []
 }),
 smalltalk.JQuery);
 
+smalltalk.addMethod(
+'_find_',
+smalltalk.method({
+selector: 'find:',
+category: 'traversing',
+fn: function (aSelector){
+var self=this;
+return smalltalk.send(self, "_call_withArgument_", ["find", aSelector]);
+return self;},
+source: unescape('find%3A%20aSelector%0A%20%20%20%20%22Get%20the%20descendants%20of%20each%20element%20in%20the%20current%20set%20of%20matched%20elements%2C%20filtered%20by%20a%20selector%2C%20jQuery%20object%2C%20or%20element.%22%0A%20%20%20%20%5E%20self%20call%3A%20%27find%27%20withArgument%3A%20aSelector'),
+messageSends: ["call:withArgument:"],
+referencedClasses: []
+}),
+smalltalk.JQuery);
+
 
 smalltalk.addMethod(
 '_fromString_',

+ 15 - 0
js/JQuery.js

@@ -660,6 +660,21 @@ referencedClasses: []
 }),
 smalltalk.JQuery);
 
+smalltalk.addMethod(
+'_find_',
+smalltalk.method({
+selector: 'find:',
+category: 'traversing',
+fn: function (aSelector){
+var self=this;
+return smalltalk.send(self, "_call_withArgument_", ["find", aSelector]);
+return self;},
+source: unescape('find%3A%20aSelector%0A%20%20%20%20%22Get%20the%20descendants%20of%20each%20element%20in%20the%20current%20set%20of%20matched%20elements%2C%20filtered%20by%20a%20selector%2C%20jQuery%20object%2C%20or%20element.%22%0A%20%20%20%20%5E%20self%20call%3A%20%27find%27%20withArgument%3A%20aSelector'),
+messageSends: ["call:withArgument:"],
+referencedClasses: []
+}),
+smalltalk.JQuery);
+
 
 smalltalk.addMethod(
 '_fromString_',

+ 16 - 0
js/Kernel-Tests.deploy.js

@@ -29,5 +29,21 @@ referencedClasses: [smalltalk.String]
 }),
 smalltalk.StringTest);
 
+smalltalk.addMethod(
+'_testIncludesSubString',
+smalltalk.method({
+selector: 'testIncludesSubString',
+category: 'tests',
+fn: function (){
+var self=this;
+smalltalk.send(self, "_assert_", [smalltalk.send("jtalk", "_includesSubString_", ["alk"])]);
+smalltalk.send(self, "_deny_", [smalltalk.send("jtalk", "_includesSubString_", ["zork"])]);
+return self;},
+source: unescape('testIncludesSubString%0A%09self%20assert%3A%20%28%27jtalk%27%20includesSubString%3A%20%27alk%27%29.%0A%09self%20deny%3A%20%28%27jtalk%27%20includesSubString%3A%20%27zork%27%29.'),
+messageSends: ["assert:", "includesSubString:", "deny:"],
+referencedClasses: []
+}),
+smalltalk.StringTest);
+
 
 

+ 16 - 0
js/Kernel-Tests.js

@@ -29,5 +29,21 @@ referencedClasses: [smalltalk.String]
 }),
 smalltalk.StringTest);
 
+smalltalk.addMethod(
+'_testIncludesSubString',
+smalltalk.method({
+selector: 'testIncludesSubString',
+category: 'tests',
+fn: function (){
+var self=this;
+smalltalk.send(self, "_assert_", [smalltalk.send("jtalk", "_includesSubString_", ["alk"])]);
+smalltalk.send(self, "_deny_", [smalltalk.send("jtalk", "_includesSubString_", ["zork"])]);
+return self;},
+source: unescape('testIncludesSubString%0A%09self%20assert%3A%20%28%27jtalk%27%20includesSubString%3A%20%27alk%27%29.%0A%09self%20deny%3A%20%28%27jtalk%27%20includesSubString%3A%20%27zork%27%29.'),
+messageSends: ["assert:", "includesSubString:", "deny:"],
+referencedClasses: []
+}),
+smalltalk.StringTest);
+
 
 

+ 15 - 0
js/Kernel.deploy.js

@@ -4465,6 +4465,21 @@ referencedClasses: [smalltalk.String]
 }),
 smalltalk.String);
 
+smalltalk.addMethod(
+'_includesSubString_',
+smalltalk.method({
+selector: 'includesSubString:',
+category: 'testing',
+fn: function (subString){
+var self=this;
+ return self.indexOf(subString) != -1 ;
+return self;},
+source: unescape('includesSubString%3A%20subString%0A%09%3C%20return%20self.indexOf%28subString%29%20%21%3D%20-1%20%3E'),
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.String);
+
 
 smalltalk.addMethod(
 '_streamClass',

+ 15 - 0
js/Kernel.js

@@ -4465,6 +4465,21 @@ referencedClasses: [smalltalk.String]
 }),
 smalltalk.String);
 
+smalltalk.addMethod(
+'_includesSubString_',
+smalltalk.method({
+selector: 'includesSubString:',
+category: 'testing',
+fn: function (subString){
+var self=this;
+ return self.indexOf(subString) != -1 ;
+return self;},
+source: unescape('includesSubString%3A%20subString%0A%09%3C%20return%20self.indexOf%28subString%29%20%21%3D%20-1%20%3E'),
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.String);
+
 
 smalltalk.addMethod(
 '_streamClass',

+ 2 - 1
js/jtalk.js

@@ -20,7 +20,7 @@
     }
 
     function loadDependencies() {
-	loadJS('lib/jQuery/jquery-1.4.4.min.js');
+	loadJS('lib/jQuery/jquery-1.6.2.min.js');
 	loadJS('lib/jQuery/jquery-ui-1.8.9.custom.min.js');
     }
 
@@ -48,6 +48,7 @@
 	loadJS("Examples.js");
 	loadJS("Benchfib.js");
 	loadJS("Kernel-Tests.js");
+	loadJS("JQuery-Tests.js");
 
 	if(files) {
 	    for(var i=0; i < files.length; i++) {

File diff suppressed because it is too large
+ 15 - 0
js/lib/jQuery/jquery-1.6.2.min.js


+ 8 - 0
st/Canvas.st

@@ -221,6 +221,10 @@ code
 
 br
     ^self tag: 'br'
+!
+
+script
+    ^self tag: 'script'
 ! !
 
 !HTMLCanvas class methodsFor: 'instance creation'!
@@ -314,6 +318,10 @@ title: aString
 
 style: aString
     self at: 'style' put: aString
+!
+
+type: aString
+    self at: 'type' put: aString
 ! !
 
 !TagBrush methodsFor: 'converting'!

+ 34 - 0
st/JQuery-Tests.st

@@ -0,0 +1,34 @@
+TestCase subclass: #JQueryTest
+	instanceVariableNames: 'document'
+	category: 'JQuery-Tests'!
+
+!JQueryTest methodsFor: 'running'!
+
+setUp
+	document := '<div class="person">
+				<ul>
+					<li class="firstname">James</li>
+					<li class="lastname">Bond</li>
+				</ul>
+			</div>'.
+! !
+
+!JQueryTest methodsFor: 'tests'!
+
+testFind
+	self 
+		assert: 'James' 
+		equals: (document asJQuery find: 'li.firstname') html.
+!
+
+testEach
+	|classes|
+	classes := Array new.
+
+	(document asJQuery find: 'li') each: [:index :element|   
+                                              		  	classes add: ((JQuery fromElement:element) attr: 'class')].
+	self 
+		assert: #('firstname' 'lastname') printString
+		equals: classes printString
+! !
+

+ 7 - 0
st/JQuery.st

@@ -223,6 +223,13 @@ hasClass: aString
     ^self call: 'hasClass' withArgument: aString
 ! !
 
+!JQuery methodsFor: 'traversing'!
+
+find: aSelector
+    "Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element."
+    ^ self call: 'find' withArgument: aSelector
+! !
+
 !JQuery class methodsFor: 'instance creation'!
 
 fromString: aString

+ 5 - 0
st/Kernel-Tests.st

@@ -14,5 +14,10 @@ testStreamContents
 		equals: (String streamContents: [:aStream| aStream 
                                                  					nextPutAll: 'hello'; space; 
                                                  					nextPutAll: 'world'])
+!
+
+testIncludesSubString
+	self assert: ('jtalk' includesSubString: 'alk').
+	self deny: ('jtalk' includesSubString: 'zork').
 ! !
 

+ 4 - 0
st/Kernel.st

@@ -1534,6 +1534,10 @@ join: aCollection
 
 isString
     	^true
+!
+
+includesSubString: subString
+	< return self.indexOf(subString) !!= -1 >
 ! !
 
 !String class methodsFor: 'accessing'!

Some files were not shown because too many files changed in this diff