Browse Source

TIsInGroup.

Herby Vojčík 4 years ago
parent
commit
812cfd448a

+ 167 - 0
lang/src/Kernel-Helpers.js

@@ -4,6 +4,173 @@ var $pkg = $core.addPackage("Kernel-Helpers");
 $pkg.innerEval = function (expr) { return eval(expr); };
 $pkg.transport = {"type":"amd","amdNamespace":"amber/core"};
 
+$core.addTrait("TIsInGroup", "Kernel-Helpers");
+//>>excludeStart("ide", pragmas.excludeIdeData);
+$globals.TIsInGroup.comment="I contain all `isXxx` checking methods that check\x0aif receiver is part of some group of objects (`isBehavior` etc.)\x0a\x0aI should NOT contain tests for\x0ahaving a certain property (`isImmutable` etc.).";
+//>>excludeEnd("ide");
+$core.addMethod(
+$core.method({
+selector: "isBehavior",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isBehavior\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isBoolean",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isBoolean\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isClass",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isClass\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isCompiledMethod",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isCompiledMethod\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isMetaclass",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isMetaclass\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isNumber",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isNumber\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isPackage",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isPackage\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isString",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isString\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+$core.addMethod(
+$core.method({
+selector: "isSymbol",
+protocol: "testing",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "isSymbol\x0a\x09^ false",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: []
+}, function ($methodClass){ return function (){
+var self=this,$self=this;
+return false;
+
+}; }),
+$globals.TIsInGroup);
+
+
 $core.addTrait("TPragmator", "Kernel-Helpers");
 $core.addMethod(
 $core.method({

+ 47 - 0
lang/src/Kernel-Helpers.st

@@ -1,4 +1,51 @@
 Smalltalk createPackage: 'Kernel-Helpers'!
+Trait named: #TIsInGroup
+	package: 'Kernel-Helpers'!
+!TIsInGroup commentStamp!
+I contain all `isXxx` checking methods that check
+if receiver is part of some group of objects (`isBehavior` etc.)
+
+I should NOT contain tests for
+having a certain property (`isImmutable` etc.).!
+
+!TIsInGroup methodsFor: 'testing'!
+
+isBehavior
+	^ false
+!
+
+isBoolean
+	^ false
+!
+
+isClass
+	^ false
+!
+
+isCompiledMethod
+	^ false
+!
+
+isMetaclass
+	^ false
+!
+
+isNumber
+	^ false
+!
+
+isPackage
+	^ false
+!
+
+isString
+	^ false
+!
+
+isSymbol
+	^ false
+! !
+
 Trait named: #TPragmator
 	package: 'Kernel-Helpers'!
 

+ 2 - 2
lang/src/Kernel-Infrastructure.js

@@ -1,4 +1,4 @@
-define(["amber/boot", "require", "amber/core/Kernel-Collections", "amber/core/Kernel-Objects", "amber/core/Kernel-Promises"], function($boot,requirejs){"use strict";
+define(["amber/boot", "require", "amber/core/Kernel-Collections", "amber/core/Kernel-Helpers", "amber/core/Kernel-Objects", "amber/core/Kernel-Promises"], function($boot,requirejs){"use strict";
 var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
 var $pkg = $core.addPackage("Kernel-Infrastructure");
 $pkg.innerEval = function (expr) { return eval(expr); };
@@ -4024,7 +4024,7 @@ return self;
 }; }),
 $globals.SmalltalkImage.a$cls);
 
-$core.setTraitComposition([{trait: $globals.TThenable}], $globals.JSObjectProxy);
+$core.setTraitComposition([{trait: $globals.TIsInGroup}, {trait: $globals.TThenable}], $globals.JSObjectProxy);
 
 $core.addMethod(
 $core.method({

+ 1 - 1
lang/src/Kernel-Infrastructure.st

@@ -1073,7 +1073,7 @@ new
 	self shouldNotImplement
 ! !
 
-JSObjectProxy setTraitComposition: {TThenable} asTraitComposition!
+JSObjectProxy setTraitComposition: {TIsInGroup. TThenable} asTraitComposition!
 ! !
 
 !ProtoStream methodsFor: '*Kernel-Infrastructure'!

+ 1 - 162
lang/src/Kernel-Objects.js

@@ -1129,78 +1129,6 @@ return $recv(aValuable)._value_(self);
 }; }),
 $globals.Object);
 
-$core.addMethod(
-$core.method({
-selector: "isBehavior",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isBehavior\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
-$core.addMethod(
-$core.method({
-selector: "isBoolean",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isBoolean\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
-$core.addMethod(
-$core.method({
-selector: "isClass",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isClass\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
-$core.addMethod(
-$core.method({
-selector: "isCompiledMethod",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isCompiledMethod\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
 $core.addMethod(
 $core.method({
 selector: "isImmutable",
@@ -1242,60 +1170,6 @@ return $recv($self._class()).__eq(aClass);
 }; }),
 $globals.Object);
 
-$core.addMethod(
-$core.method({
-selector: "isMetaclass",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isMetaclass\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
-$core.addMethod(
-$core.method({
-selector: "isNumber",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isNumber\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
-$core.addMethod(
-$core.method({
-selector: "isPackage",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isPackage\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
 $core.addMethod(
 $core.method({
 selector: "isParseFailure",
@@ -1314,42 +1188,6 @@ return false;
 }; }),
 $globals.Object);
 
-$core.addMethod(
-$core.method({
-selector: "isString",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isString\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
-$core.addMethod(
-$core.method({
-selector: "isSymbol",
-protocol: "testing",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "isSymbol\x0a\x09^ false",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: []
-}, function ($methodClass){ return function (){
-var self=this,$self=this;
-return false;
-
-}; }),
-$globals.Object);
-
 $core.addMethod(
 $core.method({
 selector: "postCopy",
@@ -6603,6 +6441,7 @@ return self;
 }; }),
 $globals.UndefinedObject.a$cls);
 
+$core.setTraitComposition([{trait: $globals.TIsInGroup}], $globals.Object);
 $core.setTraitComposition([{trait: $globals.TSubclassable}], $globals.UndefinedObject);
 
 });

+ 1 - 36
lang/src/Kernel-Objects.st

@@ -330,22 +330,6 @@ putOn: aStream
 
 !Object methodsFor: 'testing'!
 
-isBehavior
-	^ false
-!
-
-isBoolean
-	^ false
-!
-
-isClass
-	^ false
-!
-
-isCompiledMethod
-	^ false
-!
-
 isImmutable
 	^ false
 !
@@ -354,30 +338,10 @@ isMemberOf: aClass
 	^ self class = aClass
 !
 
-isMetaclass
-	^ false
-!
-
-isNumber
-	^ false
-!
-
-isPackage
-	^ false
-!
-
 isParseFailure
 	^ false
 !
 
-isString
-	^ false
-!
-
-isSymbol
-	^ false
-!
-
 respondsTo: aSelector
 	^ self class canUnderstand: aSelector
 ! !
@@ -1529,6 +1493,7 @@ new
 		self error: 'You cannot create new instances of UndefinedObject. Use nil'
 ! !
 
+Object setTraitComposition: {TIsInGroup} asTraitComposition!
 UndefinedObject setTraitComposition: {TSubclassable} asTraitComposition!
 ! !