Browse Source

Merge branch 'package-loader-etc' into requirejs-wip

Herbert Vojčík 10 years ago
parent
commit
3c0c090401
3 changed files with 119 additions and 14 deletions
  1. 40 4
      js/Importer-Exporter.deploy.js
  2. 58 7
      js/Importer-Exporter.js
  3. 21 3
      st/Importer-Exporter.st

+ 40 - 4
js/Importer-Exporter.deploy.js

@@ -756,18 +756,18 @@ messageSends: ["do:displayingProgress:", "value:", "exportPackage:", "name", "ke
 smalltalk.PackageHandler);
 
 
+smalltalk.PackageHandler.klass.iVarNames = ['registry'];
 smalltalk.addMethod(
 smalltalk.method({
 selector: "classRegisteredFor:",
 fn: function (aString){
 var self=this;
-function $LegacyPackageHandler(){return smalltalk.LegacyPackageHandler||(typeof LegacyPackageHandler=="undefined"?nil:LegacyPackageHandler)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=$LegacyPackageHandler();
+$1=_st(self["@registry"])._at_(aString);
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"classRegisteredFor:",{aString:aString},smalltalk.PackageHandler.klass)})},
-messageSends: []}),
+messageSends: ["at:"]}),
 smalltalk.PackageHandler.klass);
 
 smalltalk.addMethod(
@@ -783,6 +783,41 @@ return $1;
 messageSends: ["new", "classRegisteredFor:"]}),
 smalltalk.PackageHandler.klass);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "initialize",
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+smalltalk.PackageHandler.klass.superclass.fn.prototype._initialize.apply(_st(self), []);
+self["@registry"]=smalltalk.HashedCollection._from_([]);
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.PackageHandler.klass)})},
+messageSends: ["initialize"]}),
+smalltalk.PackageHandler.klass);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "register:for:",
+fn: function (aClass,aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self["@registry"])._at_put_(aString,aClass);
+return self}, function($ctx1) {$ctx1.fill(self,"register:for:",{aClass:aClass,aString:aString},smalltalk.PackageHandler.klass)})},
+messageSends: ["at:put:"]}),
+smalltalk.PackageHandler.klass);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "registerFor:",
+fn: function (aString){
+var self=this;
+function $PackageHandler(){return smalltalk.PackageHandler||(typeof PackageHandler=="undefined"?nil:PackageHandler)}
+return smalltalk.withContext(function($ctx1) { 
+_st($PackageHandler())._register_for_(self,aString);
+return self}, function($ctx1) {$ctx1.fill(self,"registerFor:",{aString:aString},smalltalk.PackageHandler.klass)})},
+messageSends: ["register:for:"]}),
+smalltalk.PackageHandler.klass);
+
 
 smalltalk.addClass('LegacyPackageHandler', smalltalk.PackageHandler, [], 'Importer-Exporter');
 smalltalk.addMethod(
@@ -974,9 +1009,10 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 smalltalk.LegacyPackageHandler.klass.superclass.fn.prototype._initialize.apply(_st(self), []);
+self._registerFor_("unknown");
 self._commitPathsFromLoader();
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.LegacyPackageHandler.klass)})},
-messageSends: ["initialize", "commitPathsFromLoader"]}),
+messageSends: ["initialize", "registerFor:", "commitPathsFromLoader"]}),
 smalltalk.LegacyPackageHandler.klass);
 
 smalltalk.addMethod(

+ 58 - 7
js/Importer-Exporter.js

@@ -917,22 +917,22 @@ referencedClasses: []
 smalltalk.PackageHandler);
 
 
+smalltalk.PackageHandler.klass.iVarNames = ['registry'];
 smalltalk.addMethod(
 smalltalk.method({
 selector: "classRegisteredFor:",
 category: 'accessing',
 fn: function (aString){
 var self=this;
-function $LegacyPackageHandler(){return smalltalk.LegacyPackageHandler||(typeof LegacyPackageHandler=="undefined"?nil:LegacyPackageHandler)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
-$1=$LegacyPackageHandler();
+$1=_st(self["@registry"])._at_(aString);
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"classRegisteredFor:",{aString:aString},smalltalk.PackageHandler.klass)})},
 args: ["aString"],
-source: "classRegisteredFor: aString\x0a\x09\x22Temporary. Should return instance of appropriate\x0a\x09package handler for supplied transport type.\x22\x0a\x09^LegacyPackageHandler",
-messageSends: [],
-referencedClasses: ["LegacyPackageHandler"]
+source: "classRegisteredFor: aString\x0a\x09^registry at: aString",
+messageSends: ["at:"],
+referencedClasses: []
 }),
 smalltalk.PackageHandler.klass);
 
@@ -954,6 +954,56 @@ referencedClasses: []
 }),
 smalltalk.PackageHandler.klass);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "initialize",
+category: 'initialization',
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+smalltalk.PackageHandler.klass.superclass.fn.prototype._initialize.apply(_st(self), []);
+self["@registry"]=smalltalk.HashedCollection._from_([]);
+return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.PackageHandler.klass)})},
+args: [],
+source: "initialize\x0a\x09super initialize.\x0a\x09registry := #{}",
+messageSends: ["initialize"],
+referencedClasses: []
+}),
+smalltalk.PackageHandler.klass);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "register:for:",
+category: 'registry',
+fn: function (aClass,aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+_st(self["@registry"])._at_put_(aString,aClass);
+return self}, function($ctx1) {$ctx1.fill(self,"register:for:",{aClass:aClass,aString:aString},smalltalk.PackageHandler.klass)})},
+args: ["aClass", "aString"],
+source: "register: aClass for: aString\x0a\x09registry at: aString put: aClass",
+messageSends: ["at:put:"],
+referencedClasses: []
+}),
+smalltalk.PackageHandler.klass);
+
+smalltalk.addMethod(
+smalltalk.method({
+selector: "registerFor:",
+category: 'registry',
+fn: function (aString){
+var self=this;
+function $PackageHandler(){return smalltalk.PackageHandler||(typeof PackageHandler=="undefined"?nil:PackageHandler)}
+return smalltalk.withContext(function($ctx1) { 
+_st($PackageHandler())._register_for_(self,aString);
+return self}, function($ctx1) {$ctx1.fill(self,"registerFor:",{aString:aString},smalltalk.PackageHandler.klass)})},
+args: ["aString"],
+source: "registerFor: aString\x0a\x09PackageHandler register: self for: aString",
+messageSends: ["register:for:"],
+referencedClasses: ["PackageHandler"]
+}),
+smalltalk.PackageHandler.klass);
+
 
 smalltalk.addClass('LegacyPackageHandler', smalltalk.PackageHandler, [], 'Importer-Exporter');
 smalltalk.LegacyPackageHandler.comment="I am responsible for handling package loading and committing.\x0a\x0aI should not be used directly. Instead, use the corresponding `Package` methods.";
@@ -1202,11 +1252,12 @@ fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 smalltalk.LegacyPackageHandler.klass.superclass.fn.prototype._initialize.apply(_st(self), []);
+self._registerFor_("unknown");
 self._commitPathsFromLoader();
 return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.LegacyPackageHandler.klass)})},
 args: [],
-source: "initialize\x0a\x09super initialize.\x0a\x09self commitPathsFromLoader",
-messageSends: ["initialize", "commitPathsFromLoader"],
+source: "initialize\x0a\x09super initialize.\x0a\x09self registerFor: 'unknown'.\x0a\x09self commitPathsFromLoader",
+messageSends: ["initialize", "registerFor:", "commitPathsFromLoader"],
 referencedClasses: []
 }),
 smalltalk.LegacyPackageHandler.klass);

+ 21 - 3
st/Importer-Exporter.st

@@ -432,18 +432,35 @@ ajaxPutAt: aURL data: aString
 			'error' -> [ :xhr | self error: 'Commiting ' , aURL , ' failed with reason: "' , (xhr responseText) , '"'] }
 ! !
 
+PackageHandler class instanceVariableNames: 'registry'!
+
 !PackageHandler class methodsFor: 'accessing'!
 
 classRegisteredFor: aString
-	"Temporary. Should return instance of appropriate
-	package handler for supplied transport type."
-	^LegacyPackageHandler
+	^registry at: aString
 !
 
 for: aString
 	^(self classRegisteredFor: aString) new
 ! !
 
+!PackageHandler class methodsFor: 'initialization'!
+
+initialize
+	super initialize.
+	registry := #{}
+! !
+
+!PackageHandler class methodsFor: 'registry'!
+
+register: aClass for: aString
+	registry at: aString put: aClass
+!
+
+registerFor: aString
+	PackageHandler register: self for: aString
+! !
+
 PackageHandler subclass: #LegacyPackageHandler
 	instanceVariableNames: ''
 	package: 'Importer-Exporter'!
@@ -540,6 +557,7 @@ resetCommitPaths
 
 initialize
 	super initialize.
+	self registerFor: 'unknown'.
 	self commitPathsFromLoader
 ! !