[Pharo] Personal fitness tracker web app.
Reintroduce MFTExercise class factory methods.
src/MyFitnessTracker-Core/MFTExercise.class.st
@@ -11,13 +11,175 @@
11
11
#name : 'MFTExercise',
12
12
#superclass : 'MFTObject',
13
13
#instVars : [
14
Removed:
'primaryMuscleGroupId',
15
14
'englishName',
16
Removed:
'frenchName'
15
Added:
'frenchName',
16
Added:
'primaryMuscle',
17
Added:
'secondaryMuscles'
17
18
],
18
19
#category : 'MyFitnessTracker-Core',
19
20
#package : 'MyFitnessTracker-Core'
20
21
}
22
Added:
23
Added:
{ #category : 'benchmarking' }
24
Added:
MFTExercise class >> benchPress [
25
Added:
26
Added:
^ self newWithEnglishName
27
Added:
primaryMuscle: MFTMuscle pectoralisMajor;
28
Added:
secondaryMuscles: {
29
Added:
MFTMuscle tricepsBrachii.
30
Added:
MFTMuscleGroup shoulder };
31
Added:
yourself
32
Added:
]
33
Added:
34
Added:
{ #category : 'benchmarking' }
35
Added:
MFTExercise class >> bicepCurl [
36
Added:
37
Added:
^ self newWithEnglishName
38
Added:
primaryMuscle: MFTMuscle bicepsBrachii;
39
Added:
secondaryMuscles: { MFTMuscleGroup forearm };
40
Added:
yourself
41
Added:
]
42
Added:
43
Added:
{ #category : 'benchmarking' }
44
Added:
MFTExercise class >> cableRow [
45
Added:
46
Added:
^ self newWithEnglishName
47
Added:
primaryMuscle: MFTMuscleGroup back;
48
Added:
secondaryMuscles: MFTMuscle bicepsBrachii;
49
Added:
yourself
50
Added:
]
51
Added:
52
Added:
{ #category : 'benchmarking' }
53
Added:
MFTExercise class >> cleanAndJerk [
54
Added:
55
Added:
^ self newWithEnglishName
56
Added:
primaryMuscle: MFTMuscle quadricepsFemoris;
57
Added:
secondaryMuscles: {
58
Added:
MFTMuscleGroup shoulder.
59
Added:
MFTMuscle trapezius };
60
Added:
yourself
61
Added:
]
62
Added:
63
Added:
{ #category : 'benchmarking' }
64
Added:
MFTExercise class >> deadlift [
65
Added:
66
Added:
^ self newWithEnglishName
67
Added:
primaryMuscle: MFTMuscle hamstring;
68
Added:
secondaryMuscles: {
69
Added:
MFTMuscleGroup back.
70
Added:
MFTMuscleGroup hips };
71
Added:
yourself
72
Added:
]
73
Added:
74
Added:
{ #category : 'benchmarking' }
75
Added:
MFTExercise class >> declineBenchPress [
76
Added:
77
Added:
^ self newWithEnglishName
78
Added:
primaryMuscle: MFTMuscleGroup chest;
79
Added:
secondaryMuscles: MFTMuscle tricepsBrachii;
80
Added:
yourself
81
Added:
]
82
Added:
83
Added:
{ #category : 'benchmarking' }
84
Added:
MFTExercise class >> gobletSquat [
85
Added:
86
Added:
^ self newWithEnglishName
87
Added:
primaryMuscle: MFTMuscleGroup legs;
88
Added:
secondaryMuscles: {
89
Added:
MFTMuscleGroup abdominal.
90
Added:
MFTMuscleGroup back };
91
Added:
yourself
92
Added:
]
93
Added:
94
Added:
{ #category : 'benchmarking' }
95
Added:
MFTExercise class >> hammerCurl [
96
Added:
97
Added:
^ self newWithEnglishName
98
Added:
primaryMuscle: MFTMuscle bicepsBrachii;
99
Added:
secondaryMuscles: { MFTMuscleGroup forearm };
100
Added:
yourself
101
Added:
]
102
Added:
103
Added:
{ #category : 'benchmarking' }
104
Added:
MFTExercise class >> latPulldown [
105
Added:
106
Added:
^ self newWithEnglishName
107
Added:
primaryMuscle: MFTMuscle latissimusDorsi;
108
Added:
secondaryMuscles: {
109
Added:
MFTMuscle bicepsBrachii.
110
Added:
MFTMuscleGroup shoulder };
111
Added:
yourself
112
Added:
]
113
Added:
114
Added:
{ #category : 'benchmarking' }
115
Added:
MFTExercise class >> legCurl [
116
Added:
117
Added:
^ self newWithEnglishName
118
Added:
primaryMuscle: MFTMuscleGroup legs;
119
Added:
yourself
120
Added:
]
121
Added:
122
Added:
{ #category : 'benchmarking' }
123
Added:
MFTExercise class >> legExtension [
124
Added:
125
Added:
^ self newWithEnglishName
126
Added:
primaryMuscle: MFTMuscleGroup legs;
127
Added:
yourself
128
Added:
]
129
Added:
130
Added:
{ #category : 'benchmarking' }
131
Added:
MFTExercise class >> newWithEnglishName [
132
Added:
"I return a MFTExercise instance for which englishName is set to the calling method selector, as a space-separated string."
133
Added:
134
Added:
| exerciseNameFromSender |
135
Added:
exerciseNameFromSender := (thisContext sender selector splitCamelCase
136
Added:
collect: #asLowercase) joinUsing:
137
Added:
Character space.
138
Added:
^ self new
139
Added:
englishName: exerciseNameFromSender;
140
Added:
yourself
141
Added:
]
142
Added:
143
Added:
{ #category : 'benchmarking' }
144
Added:
MFTExercise class >> shoulderPressDumbell [
145
Added:
146
Added:
^ self new
147
Added:
englishName: 'shoulder press (dumbell)';
148
Added:
primaryMuscle: MFTMuscle deltoidAnterior;
149
Added:
secondaryMuscles: MFTMuscle deltoidMedial;
150
Added:
yourself
151
Added:
]
152
Added:
153
Added:
{ #category : 'benchmarking' }
154
Added:
MFTExercise class >> snatch [
155
Added:
156
Added:
^ self newWithEnglishName
157
Added:
primaryMuscle: MFTMuscle quadricepsFemoris;
158
Added:
secondaryMuscles: {
159
Added:
MFTMuscleGroup shoulder.
160
Added:
MFTMuscle trapezius };
161
Added:
yourself
162
Added:
]
163
Added:
164
Added:
{ #category : 'benchmarking' }
165
Added:
MFTExercise class >> squat [
166
Added:
167
Added:
^ self newWithEnglishName
168
Added:
primaryMuscle: MFTMuscleGroup legs;
169
Added:
secondaryMuscles: {
170
Added:
MFTMuscleGroup abdominal.
171
Added:
MFTMuscleGroup back };
172
Added:
yourself
173
Added:
]
174
Added:
175
Added:
{ #category : 'benchmarking' }
176
Added:
MFTExercise class >> tricepExtension [
177
Added:
178
Added:
^ self newWithEnglishName
179
Added:
primaryMuscle: MFTMuscle tricepsBrachii;
180
Added:
secondaryMuscles: { };
181
Added:
yourself
182
Added:
]
21
183
22
184
{ #category : 'accessing' }
23
185
MFTExercise >> englishName [