Skip to content

Commit

Permalink
Fixed #702. Removed the CM prefix
Browse files Browse the repository at this point in the history
  • Loading branch information
olekscode committed Sep 16, 2023
1 parent cac44eb commit 304b693
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 31 deletions.
6 changes: 5 additions & 1 deletion repository/Cormas-Core/CMProjectModel.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -262,12 +262,16 @@ CMProjectModel >> cormasVersion: aString [

{ #category : #accessing }
CMProjectModel >> createClassModelNamed: modelName [
" Generate a new class named modelName. modelName should be in the format CMXXXModel. See defaultCormasModelName for details.
" Generate a new class named modelName. modelName should be in the format XXXModel. See defaultCormasModelName for details.
Answer the new generated <Class> "

| validClassName |

validClassName := self validateCormasModelName: modelName.

(validClassName endsWith: 'Model') ifFalse: [
validClassName := validClassName, 'Model' ].

self codeGenerator
targetClassCategory: self defaultStdCormasCategoryName;
targetClass: validClassName;
Expand Down
19 changes: 5 additions & 14 deletions repository/Cormas-Core/String.extension.st
Original file line number Diff line number Diff line change
Expand Up @@ -32,26 +32,17 @@ String >> asValidCormasClassName: aCMProjectName [
- Begins with CM
- It is a Symbol "

| validName prjName |
| validName |

self assert: (aCMProjectName notEmpty and: [ self notEmpty ]).
validName := self capitalized.
validName := validName withoutBlanks.
validName := validName withoutLeadingDigits.
validName := validName withoutQuoting.
prjName := (aCMProjectName beginsWith: 'CM')
ifTrue: [ aCMProjectName allButFirst: 2 ]
ifFalse: [ aCMProjectName ].
(validName asUppercase beginsWith: 'CM')
ifFalse: [ validName := validName asUppercase = prjName asUppercase
ifFalse: [ 'CM' , prjName , validName ]
ifTrue: [ 'CM' , validName ] ]
ifTrue: [ | nameWithoutPrefix |
nameWithoutPrefix := validName allButFirst: 2.
validName := (nameWithoutPrefix asUppercase
beginsWith: prjName asUppercase)
ifTrue: [ 'CM' , nameWithoutPrefix ]
ifFalse: [ 'CM' , prjName , nameWithoutPrefix ] ].

(validName asUppercase beginsWith: aCMProjectName asUppercase) ifFalse: [
validName := aCMProjectName, validName ].

^ validName asSymbol

]
32 changes: 16 additions & 16 deletions repository/Cormas-Tests/StringTest.extension.st
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@ Extension { #name : #StringTest }
{ #category : #'*Cormas-Tests' }
StringTest >> testAsValidCormasClassName [

self assert: ('Entity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('CMEntity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: (' Entity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: (' CMEntity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('Entity ' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('CMEntity ' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('Ent ity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('CM Entity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('Ent ity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('CM Entity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('123Entity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('1CMEntity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('Entity321' asValidCormasClassName: 'Project1') equals: #CMProject1Entity321.
self assert: ('CMEntity321' asValidCormasClassName: 'Project1') equals: #CMProject1Entity321.
self assert: ('Entity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('CMEntity' asValidCormasClassName: 'Project1') equals: #CMProject1Entity.
self assert: ('Entity' asValidCormasClassName: 'Project1') equals: #Project1Entity.
self assert: ('CMEntity' asValidCormasClassName: 'Project1') equals: #Project1CMEntity.
self assert: (' Entity' asValidCormasClassName: 'Project1') equals: #Project1Entity.
self assert: (' CMEntity' asValidCormasClassName: 'Project1') equals: #Project1CMEntity.
self assert: ('Entity ' asValidCormasClassName: 'Project1') equals: #Project1Entity.
self assert: ('CMEntity ' asValidCormasClassName: 'Project1') equals: #Project1CMEntity.
self assert: ('Ent ity' asValidCormasClassName: 'Project1') equals: #Project1Entity.
self assert: ('CM Entity' asValidCormasClassName: 'Project1') equals: #Project1CMEntity.
self assert: ('Ent ity' asValidCormasClassName: 'Project1') equals: #Project1Entity.
self assert: ('CM Entity' asValidCormasClassName: 'Project1') equals: #Project1CMEntity.
self assert: ('123Entity' asValidCormasClassName: 'Project1') equals: #Project1Entity.
self assert: ('1CMEntity' asValidCormasClassName: 'Project1') equals: #Project1CMEntity.
self assert: ('Entity321' asValidCormasClassName: 'Project1') equals: #Project1Entity321.
self assert: ('CMEntity321' asValidCormasClassName: 'Project1') equals: #Project1CMEntity321.
self assert: ('Entity' asValidCormasClassName: 'Project1') equals: #Project1Entity.
self assert: ('CMEntity' asValidCormasClassName: 'Project1') equals: #Project1CMEntity.

self should: [ 'CMEntity' asValidCormasClassName: '' ] raise: Error.
self should: [ '' asValidCormasClassName: 'Project1' ] raise: Error.
Expand Down

0 comments on commit 304b693

Please sign in to comment.