diff --git a/MonticelloTonel-Core.package/TonelWriter.class/instance/createDefaultOrganizationFrom..st b/MonticelloTonel-Core.package/TonelWriter.class/instance/createDefaultOrganizationFrom..st index 67fb4e0..449e6d7 100644 --- a/MonticelloTonel-Core.package/TonelWriter.class/instance/createDefaultOrganizationFrom..st +++ b/MonticelloTonel-Core.package/TonelWriter.class/instance/createDefaultOrganizationFrom..st @@ -1,3 +1,12 @@ private -createDefaultOrganizationFrom: aMCClassDefinition - ^ MCOrganizationDefinition categories: { aMCClassDefinition category } \ No newline at end of file +createDefaultOrganizationFrom: aCollection + "answers a default organisation for the cases where there are none" + + "simplest case, I answer the clas definition" + snapshot definitions + detect: #isClassDefinition + ifFound: [ :each | ^ each category ]. + + ^ self createDefaultOrganizationFromDefinition: (snapshot definitions + detect: #isMethodDefinition + ifNone: [ self error: 'cannot determine package name from empty snapshot' ]) \ No newline at end of file diff --git a/MonticelloTonel-Core.package/TonelWriter.class/instance/createDefaultOrganizationFromDefinition..st b/MonticelloTonel-Core.package/TonelWriter.class/instance/createDefaultOrganizationFromDefinition..st new file mode 100644 index 0000000..baa8ba1 --- /dev/null +++ b/MonticelloTonel-Core.package/TonelWriter.class/instance/createDefaultOrganizationFromDefinition..st @@ -0,0 +1,4 @@ +private +createDefaultOrganizationFromDefinition: aMethodDefinition + + ^ MCOrganizationDefinition categories: (self packageNameForMethodDefinition: aMethodDefinition) \ No newline at end of file diff --git a/MonticelloTonel-Core.package/TonelWriter.class/instance/packageNameForMethodDefinition..st b/MonticelloTonel-Core.package/TonelWriter.class/instance/packageNameForMethodDefinition..st new file mode 100644 index 0000000..13c16e2 --- /dev/null +++ b/MonticelloTonel-Core.package/TonelWriter.class/instance/packageNameForMethodDefinition..st @@ -0,0 +1,10 @@ +private +packageNameForMethodDefinition: aMethodDefinition + | category | + + self assert: aMethodDefinition category first = $*. + category := aMethodDefinition category allButFirst. + ^(MCWorkingCopy allManagers + detect: ((category allSatisfy: #isLowercase) + ifTrue: [[: wc| category beginsWith: wc packageName asLowercase]] + ifFalse: [[: wc| category beginsWith: wc packageName]])) packageName \ No newline at end of file diff --git a/MonticelloTonel-Core.package/TonelWriter.class/instance/writeSnapshot..st b/MonticelloTonel-Core.package/TonelWriter.class/instance/writeSnapshot..st index 7178262..7cb9e3b 100644 --- a/MonticelloTonel-Core.package/TonelWriter.class/instance/writeSnapshot..st +++ b/MonticelloTonel-Core.package/TonelWriter.class/instance/writeSnapshot..st @@ -6,8 +6,7 @@ writeSnapshot: aSnapshot It has to be just one but well..." self writePackage: (snapshot definitions detect: #isOrganizationDefinition - ifFound: [ :each | each ] - ifNone: [ self createDefaultOrganizationFrom: (snapshot definitions detect: #isClassDefinition) ]). + ifNone: [ self createDefaultOrganizationFrom: snapshot definitions ]). "now export classes" (snapshot definitions select: #isClassDefinition)