Explorar o código

using for: self transportType to create package handler

Herbert Vojčík %!s(int64=10) %!d(string=hai) anos
pai
achega
59db7499be

+ 15 - 2
js/Importer-Exporter.deploy.js

@@ -808,6 +808,19 @@ messageSends: ["setupClasses", "named:", "commitPathJs:", ",", "commitPathSt:"]}
 smalltalk.PackageHandler);
 
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "for:",
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=self._new();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"for:",{aString:aString},smalltalk.PackageHandler.klass)})},
+messageSends: ["new"]}),
+smalltalk.PackageHandler.klass);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "loadPackages:prefix:",
@@ -830,10 +843,10 @@ var self=this;
 function $PackageHandler(){return smalltalk.PackageHandler||(typeof PackageHandler=="undefined"?nil:PackageHandler)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=_st(_st($PackageHandler())._new())._commit_(self);
+$1=_st(_st($PackageHandler())._for_(self._transportType()))._commit_(self);
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"commit",{},smalltalk.Package)})},
-messageSends: ["commit:", "new"]}),
+messageSends: ["commit:", "for:", "transportType"]}),
 smalltalk.Package);
 
 })(global_smalltalk,global_nil,global__st);

+ 21 - 3
js/Importer-Exporter.js

@@ -984,6 +984,24 @@ referencedClasses: ["Package"]
 smalltalk.PackageHandler);
 
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "for:",
+category: 'accessing',
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1;
+$1=self._new();
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"for:",{aString:aString},smalltalk.PackageHandler.klass)})},
+args: ["aString"],
+source: "for: aString\x0a\x09\x22Temporary. Should return instance of appropriate\x0a\x09package handler for supplied transport type.\x22\x0a\x09^self new",
+messageSends: ["new"],
+referencedClasses: []
+}),
+smalltalk.PackageHandler.klass);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "loadPackages:prefix:",
@@ -1012,12 +1030,12 @@ var self=this;
 function $PackageHandler(){return smalltalk.PackageHandler||(typeof PackageHandler=="undefined"?nil:PackageHandler)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=_st(_st($PackageHandler())._new())._commit_(self);
+$1=_st(_st($PackageHandler())._for_(self._transportType()))._commit_(self);
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"commit",{},smalltalk.Package)})},
 args: [],
-source: "commit\x0a\x09^ PackageHandler new commit: self",
-messageSends: ["commit:", "new"],
+source: "commit\x0a\x09^ (PackageHandler for: self transportType) commit: self",
+messageSends: ["commit:", "for:", "transportType"],
 referencedClasses: ["PackageHandler"]
 }),
 smalltalk.Package);

+ 11 - 0
js/Kernel-Objects.deploy.js

@@ -3226,6 +3226,17 @@ return $1;
 messageSends: ["sortedClasses:", "classes", "class"]}),
 smalltalk.Package);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "transportType",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return (self.transport && self.transport.type) || 'unknown';;
+return self}, function($ctx1) {$ctx1.fill(self,"transportType",{},smalltalk.Package)})},
+messageSends: []}),
+smalltalk.Package);
+
 
 smalltalk.Package.klass.iVarNames = ['defaultCommitPathJs','defaultCommitPathSt'];
 smalltalk.addMethod(

+ 16 - 0
js/Kernel-Objects.js

@@ -4417,6 +4417,22 @@ referencedClasses: []
 }),
 smalltalk.Package);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "transportType",
+category: 'accessing',
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+return (self.transport && self.transport.type) || 'unknown';;
+return self}, function($ctx1) {$ctx1.fill(self,"transportType",{},smalltalk.Package)})},
+args: [],
+source: "transportType\x0a\x09<return (self.transport && self.transport.type) || 'unknown';>",
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.Package);
+
 
 smalltalk.Package.klass.iVarNames = ['defaultCommitPathJs','defaultCommitPathSt'];
 smalltalk.addMethod(

+ 9 - 1
st/Importer-Exporter.st

@@ -462,6 +462,14 @@ setupPackageNamed: packageName prefix: aString
 		commitPathSt: '/', aString, '/st'
 ! !
 
+!PackageHandler class methodsFor: 'accessing'!
+
+for: aString
+	"Temporary. Should return instance of appropriate
+	package handler for supplied transport type."
+	^self new
+! !
+
 !PackageHandler class methodsFor: 'loading'!
 
 loadPackages: aCollection prefix: aString
@@ -471,6 +479,6 @@ loadPackages: aCollection prefix: aString
 !Package methodsFor: '*Importer-Exporter'!
 
 commit
-	^ PackageHandler new commit: self
+	^ (PackageHandler for: self transportType) commit: self
 ! !
 

+ 4 - 0
st/Kernel-Objects.st

@@ -1459,6 +1459,10 @@ name: aString
 
 organization
 	^ self basicAt: 'organization'
+!
+
+transportType
+	<return (self.transport && self.transport.type) || 'unknown';>
 ! !
 
 !Package methodsFor: 'classes'!