Added canonicalName attribute to muscles and exercises, for easier deserialization from database.

Commit
da69d383fe0e8de2a69112bbff50d814d14fabbe
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
Changed files
src/MyFitnessTracker/MFTExercise.class.st
index 2915ff25..371a7a08 100644..100644
@@ -34,6 +34,7 @@
34 34 #name : #MFTExercise,
35 35 #superclass : #Object,
36 36 #instVars : [
37 Added: 'canonicalName',
37 38 'englishName',
38 39 'sets',
39 40 'primaryMuscle',
@@ -153,15 +154,26 @@
153 154 MFTExercise class >> newWithEnglishName [
154 155 "I return a MFTExercise instance for which englishName is set to the calling method selector, as a space-separated string."
155 156
156 Removed: | exerciseNameFromSender |
157 Added: | senderSelector exerciseNameFromSender |
158 Added: senderSelector := thisContext sender selector.
157 159 exerciseNameFromSender := (thisContext sender selector splitCamelCase
158 160 collect: #asLowercase) joinUsing:
159 161 Character space.
160 162 ^ self new
163 Added: canonicalName: senderSelector;
161 164 englishName: exerciseNameFromSender;
162 165 yourself
163 166 ]
164 167
168 Added: { #category : #exercise }
169 Added: MFTExercise class >> pullUp [
170 Added:
171 Added: ^ self newWithEnglishName
172 Added: primaryMuscle: MFTMuscleGroup back;
173 Added: secondaryMuscles: { MFTMuscle bicepsBrachii };
174 Added: yourself
175 Added: ]
176 Added:
165 177 { #category : #'instance creation' }
166 178 MFTExercise class >> sets: aMFTSetCollection [
167 179
@@ -173,7 +185,7 @@
173 185 { #category : #exercise }
174 186 MFTExercise class >> shoulderPressDumbell [
175 187
176 Removed: ^ self new
188 Added: ^ self newWithEnglishName
177 189 englishName: 'shoulder press (dumbell)';
178 190 primaryMuscle: MFTMuscle deltoidAnterior;
179 191 secondaryMuscles: { MFTMuscle deltoidMedial };
@@ -212,6 +224,18 @@
212 224 ]
213 225
214 226 { #category : #accessing }
227 Added: MFTExercise >> canonicalName [
228 Added:
229 Added: ^ canonicalName
230 Added: ]
231 Added:
232 Added: { #category : #accessing }
233 Added: MFTExercise >> canonicalName: anObject [
234 Added:
235 Added: canonicalName := anObject
236 Added: ]
237 Added:
238 Added: { #category : #accessing }
215 239 MFTExercise >> englishName [
216 240
217 241 ^ englishName
@@ -227,6 +251,7 @@
227 251 MFTExercise >> initialize [
228 252
229 253 super initialize.
254 Added: canonicalName := String new.
230 255 englishName := String new.
231 256 sets := OrderedCollection new.
232 257 primaryMuscle := MFTMuscleGroup new.
@@ -270,9 +295,9 @@
270 295 ]
271 296
272 297 { #category : #accessing }
273 Removed: MFTExercise >> sets: anOrderedCollection [
298 Added: MFTExercise >> sets: aMFTSetCollection [
274 299
275 Removed: sets := anOrderedCollection
300 Added: sets := aMFTSetCollection asOrderedCollection
276 301 ]
277 302
278 303 { #category : #'as yet unclassified' }
src/MyFitnessTracker/MFTMuscle.class.st
index f22b3db5..a5f2d0d0 100644..100644
@@ -2,6 +2,7 @@
2 2 #name : #MFTMuscle,
3 3 #superclass : #Object,
4 4 #instVars : [
5 Added: 'canonicalName',
5 6 'latinName',
6 7 'englishName',
7 8 'description'
@@ -176,13 +177,16 @@
176 177
177 178 { #category : #'instance creation' }
178 179 MFTMuscle class >> newWithLatinName [
179 Removed: "I return a MFTMuscle instance for which latinName is set to the calling method selector, as a space-separated string."
180 Added: "I return a MFTMuscle instance for which latinName is set to the calling method selector, as a space-separated string.
181 Added:
182 Added: canonicalName stores the name of the calling method; this way, we can reliably create MFTMuscle instances."
180 183
181 Removed: | muscleNameFromSender |
182 Removed: muscleNameFromSender := (thisContext sender selector splitCamelCase
183 Removed: collect: #asLowercase) joinUsing:
184 Removed: Character space.
184 Added: | senderSelector muscleNameFromSender |
185 Added: senderSelector := thisContext sender selector.
186 Added: muscleNameFromSender := (senderSelector splitCamelCase collect:
187 Added: #asLowercase) joinUsing: Character space.
185 188 ^ self new
189 Added: canonicalName: senderSelector;
186 190 latinName: muscleNameFromSender;
187 191 yourself
188 192 ]
@@ -294,6 +298,18 @@
294 298 ]
295 299
296 300 { #category : #accessing }
301 Added: MFTMuscle >> canonicalName [
302 Added:
303 Added: ^ canonicalName
304 Added: ]
305 Added:
306 Added: { #category : #accessing }
307 Added: MFTMuscle >> canonicalName: anObject [
308 Added:
309 Added: canonicalName := anObject
310 Added: ]
311 Added:
312 Added: { #category : #accessing }
297 313 MFTMuscle >> description [
298 314
299 315 ^ description
@@ -321,6 +337,7 @@
321 337 MFTMuscle >> initialize [
322 338
323 339 super initialize.
340 Added: canonicalName := String new.
324 341 latinName := String new.
325 342 englishName := String new.
326 343 description := String new
src/MyFitnessTracker/MFTMuscleGroup.class.st
index ce0be408..0d6aa563 100644..100644
@@ -2,6 +2,7 @@
2 2 #name : #MFTMuscleGroup,
3 3 #superclass : #SBSComponent,
4 4 #instVars : [
5 Added: 'canonicalName',
5 6 'englishName',
6 7 'latinName',
7 8 'description',
@@ -105,8 +106,11 @@
105 106 MFTMuscleGroup class >> newWithEnglishName [
106 107 "I return a MFTMuscle Group instance for which englishName is set to the calling method selector."
107 108
109 Added: | senderSelector |
110 Added: senderSelector := thisContext sender selector.
108 111 ^ self new
109 Removed: englishName: thisContext sender selector;
112 Added: canonicalName: senderSelector;
113 Added: englishName: senderSelector;
110 114 yourself
111 115 ]
112 116
@@ -123,6 +127,18 @@
123 127 ]
124 128
125 129 { #category : #accessing }
130 Added: MFTMuscleGroup >> canonicalName [
131 Added:
132 Added: ^ canonicalName
133 Added: ]
134 Added:
135 Added: { #category : #accessing }
136 Added: MFTMuscleGroup >> canonicalName: anObject [
137 Added:
138 Added: canonicalName := anObject
139 Added: ]
140 Added:
141 Added: { #category : #accessing }
126 142 MFTMuscleGroup >> description [
127 143
128 144 ^ description
@@ -150,6 +166,7 @@
150 166 MFTMuscleGroup >> initialize [
151 167
152 168 super initialize.
169 Added: canonicalName := String new.
153 170 englishName := String new.
154 171 description := String new.
155 172 muscles := OrderedCollection new