mercurial/HGPackageModelRegistry.st
changeset 46 d5a192b11a1a
child 54 66045198bfbc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/HGPackageModelRegistry.st	Wed Nov 14 01:15:30 2012 +0000
@@ -0,0 +1,36 @@
+"{ Package: 'stx:libscm/mercurial' }"
+
+SCMAbstractPackageModelRegistry subclass:#HGPackageModelRegistry
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Mercurial-StX'
+!
+
+
+!HGPackageModelRegistry methodsFor:'accessing'!
+
+packageNamed:package
+    "Returns a HGPackageModel for given package."
+
+    | dir repo |
+
+    packages at: package ifPresent: [ :pkg | ^ pkg ].
+    wcs at: package ifPresent:[ :wc | ^ wc ].
+    dir := Smalltalk getPackageDirectoryForPackage: package.
+    dir := HGRepository discover: dir.
+    dir isNil ifTrue:[
+        GitError raiseErrorString: 'No repository found for package ',package.
+        ^nil.
+    ].
+    repo := repositories at: dir ifAbsentPut: [ HGRepository on: dir ].
+    ^packages at: package ifAbsentPut: [ HGPackageModel name: package repository: repo ].
+
+    "Created: / 14-11-2012 / 00:15:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!HGPackageModelRegistry class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !