Browse Source

Refactor `setPath:`

Is transport type agnostic,
delegates to package commit handler.
Herby Vojčík 5 years ago
parent
commit
155f01703c
2 changed files with 98 additions and 36 deletions
  1. 72 24
      lang/src/Platform-ImportExport.js
  2. 26 12
      lang/src/Platform-ImportExport.st

+ 72 - 24
lang/src/Platform-ImportExport.js

@@ -3348,6 +3348,30 @@ messageSends: ["messageText:", "new", ",", "responseText", "signal"]
 }),
 $globals.PackageHandler);
 
+$core.addMethod(
+$core.method({
+selector: "setPath:forPackage:",
+protocol: "accessing",
+fn: function (aString,aPackage){
+var self=this,$self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+$self._subclassResponsibility();
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"setPath:forPackage:",{aString:aString,aPackage:aPackage},$globals.PackageHandler)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["aString", "aPackage"],
+source: "setPath: aString forPackage: aPackage\x0a\x09self subclassResponsibility",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["subclassResponsibility"]
+}),
+$globals.PackageHandler);
+
 
 
 $core.addClass("AmdPackageHandler", $globals.PackageHandler, [], "Platform-ImportExport");
@@ -3514,6 +3538,30 @@ messageSends: ["namespace", "transport"]
 }),
 $globals.AmdPackageHandler);
 
+$core.addMethod(
+$core.method({
+selector: "setPath:forPackage:",
+protocol: "accessing",
+fn: function (aString,aPackage){
+var self=this,$self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+$recv($recv(require)._provided())._config_($globals.HashedCollection._newFromPairs_(["paths",$globals.HashedCollection._newFromPairs_([$self._namespaceFor_(aPackage),aString])]));
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"setPath:forPackage:",{aString:aString,aPackage:aPackage},$globals.AmdPackageHandler)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["aString", "aPackage"],
+source: "setPath: aString forPackage: aPackage\x0a\x09\x22Set the path the the package's `namespace`\x22\x0a\x09\x0a\x09\x22Smalltalk amdRequire\x0a\x09\x09ifNil: [ self error: 'AMD loader not present' ]\x0a\x09\x09ifNotNil: [ :require |\x22\x0a\x09\x09\x09require provided config: #{\x0a\x09\x09\x09\x09'paths' -> #{\x0a\x09\x09\x09\x09\x09(self namespaceFor: aPackage) -> aString\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09}\x0a\x09\x09\x22]\x22",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["config:", "provided", "namespaceFor:"]
+}),
+$globals.AmdPackageHandler);
+
 $core.addMethod(
 $core.method({
 selector: "toUrl:",
@@ -3802,6 +3850,30 @@ messageSends: []
 }),
 $globals.PackageTransport);
 
+$core.addMethod(
+$core.method({
+selector: "setPath:",
+protocol: "actions",
+fn: function (aString){
+var self=this,$self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+$recv($self._commitHandler())._setPath_forPackage_(aString,$self["@package"]);
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"setPath:",{aString:aString},$globals.PackageTransport)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["aString"],
+source: "setPath: aString\x0a\x09\x22Set the commit path for the package\x22\x0a\x0a\x09self commitHandler setPath: aString forPackage: package",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["setPath:forPackage:", "commitHandler"]
+}),
+$globals.PackageTransport);
+
 $core.addMethod(
 $core.method({
 selector: "setupFromJson:",
@@ -4262,30 +4334,6 @@ messageSends: ["printOn:", "nextPutAll:", "namespace"]
 }),
 $globals.AmdPackageTransport);
 
-$core.addMethod(
-$core.method({
-selector: "setPath:",
-protocol: "actions",
-fn: function (aString){
-var self=this,$self=this;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-$recv($recv(require)._provided())._config_($globals.HashedCollection._newFromPairs_(["paths",$globals.HashedCollection._newFromPairs_([$self._namespace(),aString])]));
-return self;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"setPath:",{aString:aString},$globals.AmdPackageTransport)});
-//>>excludeEnd("ctx");
-},
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: ["aString"],
-source: "setPath: aString\x0a\x09\x22Set the path the the receiver's `namespace`\x22\x0a\x09\x0a\x09require provided config: #{\x0a\x09\x09'paths' -> #{\x0a\x09\x09\x09self namespace -> aString\x0a\x09\x09}\x0a\x09}.",
-referencedClasses: [],
-//>>excludeEnd("ide");
-messageSends: ["config:", "provided", "namespace"]
-}),
-$globals.AmdPackageTransport);
-
 $core.addMethod(
 $core.method({
 selector: "setupFromJson:",

+ 26 - 12
lang/src/Platform-ImportExport.st

@@ -778,6 +778,10 @@ contentsFor: aPackage
 
 exporterClass
 	self subclassResponsibility
+!
+
+setPath: aString forPackage: aPackage
+	self subclassResponsibility
 ! !
 
 !PackageHandler methodsFor: 'committing'!
@@ -884,6 +888,20 @@ commitPathStFor: aPackage
 
 exporterClass
 	^ AmdExporter
+!
+
+setPath: aString forPackage: aPackage
+	"Set the path the the package's `namespace`"
+	
+	"Smalltalk amdRequire
+		ifNil: [ self error: 'AMD loader not present' ]
+		ifNotNil: [ :require |"
+			require provided config: #{
+				'paths' -> #{
+					(self namespaceFor: aPackage) -> aString
+				}
+			}
+		"]"
 ! !
 
 !AmdPackageHandler methodsFor: 'committing'!
@@ -953,6 +971,14 @@ type
 	^ self class type
 ! !
 
+!PackageTransport methodsFor: 'actions'!
+
+setPath: aString
+	"Set the commit path for the package"
+
+	self commitHandler setPath: aString forPackage: package
+! !
+
 !PackageTransport methodsFor: 'committing'!
 
 commit
@@ -1069,18 +1095,6 @@ namespace: aString
 	namespace := aString
 ! !
 
-!AmdPackageTransport methodsFor: 'actions'!
-
-setPath: aString
-	"Set the path the the receiver's `namespace`"
-	
-	require provided config: #{
-		'paths' -> #{
-			self namespace -> aString
-		}
-	}.
-! !
-
 !AmdPackageTransport methodsFor: 'converting'!
 
 asJavaScriptObject