From b90c33bf044b8c6e256758265d6cb8f0ce357446 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Thu, 28 Apr 2022 15:05:45 -0500 Subject: [PATCH] Creation/initialization utilities. --- Apps/Holonica/HlPerson.class.st | 36 ++++++++++++++------------------- 1 file changed, 15 insertions(+), 21 deletions(-) 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 }