diff --git a/Apps/Holonica/HlPerson.class.st b/Apps/Holonica/HlPerson.class.st index b4a8b85..c70e2d3 100644 --- a/Apps/Holonica/HlPerson.class.st +++ b/Apps/Holonica/HlPerson.class.st @@ -15,30 +15,24 @@ HlPerson class >> fromListName [ ] -{ #category : #accessing } +{ #category : #initialization } HlPerson class >> fromListName: aString [ - | allNames | + | allNames names | allNames := aString substrings collect: [:each | each first asString, each allButFirst asLowercase ]. - allNames size = 4 - ifTrue: [ - ^ self new - givenName: allNames first, ' ', allNames second; - familyName: allNames third, ' ', allNames fourth - ]. - allNames size = 3 - ifTrue: [ - ^ self new - givenName: allNames first, ' ', allNames second; - familyName: allNames third. - ]. - allNames size = 2 - ifTrue: [ - ^ self new - givenName: allNames first; - familyName: allNames second. - ]. - + allNames size >= 3 + ifFalse: [ + ^ self new + givenName: allNames second; + familyName: allNames first. + ]. + names := '' writeStream. + (allNames copyFrom: 3 to: allNames size) do: [:each | + names nextPutAll: each, ' '. + ]. + ^ self new + familyName: allNames first, ' ', allNames second; + givenName: names contents trimmed ] { #category : #accessing }