[Pharo] Personal fitness tracker web app.
1
"
2
I represent a group of muscles in the human body.
3
"
4
Class {
5
#name : 'MFTMuscleGroup',
6
#superclass : 'MFTObject',
7
#instVars : [
8
'englishName',
9
'frenchName',
10
'muscles'
11
],
12
#category : 'MyFitnessTracker-Core-Anatomy',
13
#package : 'MyFitnessTracker-Core',
14
#tag : 'Anatomy'
15
}
16
17
{ #category : 'instance creation' }
18
MFTMuscleGroup class >> abdominal [
19
20
^ self newWithEnglishName
21
muscles: {
22
MFTMuscle rectusAbdominis.
23
MFTMuscle obliquusExternusAbdominis.
24
MFTMuscle obliquusInternusAbdominis.
25
MFTMuscle transversusAbdominis };
26
yourself
27
]
28
29
{ #category : 'instance creation' }
30
MFTMuscleGroup class >> arm [
31
32
^ self newWithEnglishName
33
muscles: {
34
MFTMuscle bicepsBrachii.
35
MFTMuscle tricepsBrachii };
36
yourself
37
]
38
39
{ #category : 'instance creation' }
40
MFTMuscleGroup class >> back [
41
42
^ self newWithEnglishName
43
muscles: {
44
MFTMuscle latissimusDorsi.
45
MFTMuscle trapezius.
46
MFTMuscle erectorSpinae };
47
yourself
48
]
49
50
{ #category : 'instance creation' }
51
MFTMuscleGroup class >> calf [
52
53
^ self newWithEnglishName
54
muscles: {
55
MFTMuscle gastrocnemius.
56
MFTMuscle soleus };
57
yourself
58
]
59
60
{ #category : 'instance creation' }
61
MFTMuscleGroup class >> chest [
62
63
^ self newWithEnglishName
64
muscles: {
65
MFTMuscle pectoralisMajor.
66
MFTMuscle pectoralisMinor };
67
yourself
68
]
69
70
{ #category : 'instance creation' }
71
MFTMuscleGroup class >> forearm [
72
73
^ self newWithEnglishName
74
muscles: {
75
MFTMuscle brachioRadialis.
76
MFTMuscle flexorCarpiRadialis.
77
MFTMuscle flexorCarpiUlnaris.
78
MFTMuscle extensorCarpiRadialisLongus.
79
MFTMuscle extensorCarpiRadialiasBrevis.
80
MFTMuscle extensorCarpiUlnaris };
81
yourself
82
]
83
84
{ #category : 'instance creation' }
85
MFTMuscleGroup class >> hips [
86
87
^ self newWithEnglishName
88
muscles: {
89
MFTMuscle gluteusMaximus.
90
MFTMuscle gluteusMedius.
91
MFTMuscle gluteusMinimus };
92
yourself
93
]
94
95
{ #category : 'instance creation' }
96
MFTMuscleGroup class >> leg [
97
98
^ self newWithEnglishName
99
muscles: {
100
MFTMuscle quadricepsFemoris.
101
MFTMuscle hamstring };
102
yourself
103
]
104
105
{ #category : 'instance creation' }
106
MFTMuscleGroup class >> newWithEnglishName [
107
"I return a MFTMuscle Group instance for which latinName is set to the calling method selector."
108
109
^ self new
110
englishName: thisContext sender selector;
111
yourself
112
]
113
114
{ #category : 'instance creation' }
115
MFTMuscleGroup class >> shoulder [
116
117
^ self newWithEnglishName
118
muscles: {
119
MFTMuscle deltoidAnterior.
120
MFTMuscle deltoidMedial.
121
MFTMuscle deltoidPosterior.
122
MFTMuscle rotatorCuff };
123
yourself
124
]
125
126
{ #category : 'comparing' }
127
MFTMuscleGroup >> = anObject [
128
"Answer whether the receiver and anObject represent the same object."
129
130
self == anObject ifTrue: [ ^ true ].
131
self class = anObject class ifFalse: [ ^ false ].
132
^ muscles asBag = anObject muscles asBag
133
]
134
135
{ #category : 'accessing' }
136
MFTMuscleGroup >> canonicalName [
137
138
^ englishName
139
]
140
141
{ #category : 'accessing' }
142
MFTMuscleGroup >> englishName [
143
144
^ englishName
145
]
146
147
{ #category : 'accessing' }
148
MFTMuscleGroup >> englishName: aString [
149
150
englishName := aString
151
]
152
153
{ #category : 'accessing' }
154
MFTMuscleGroup >> frenchName [
155
156
^ frenchName
157
]
158
159
{ #category : 'accessing' }
160
MFTMuscleGroup >> frenchName: anObject [
161
162
frenchName := anObject
163
]
164
165
{ #category : 'comparing' }
166
MFTMuscleGroup >> hash [
167
"Answer an integer value that is related to the identity of the receiver."
168
169
^ muscles asBag hash
170
]
171
172
{ #category : 'testing' }
173
MFTMuscleGroup >> includes: aMFTMuscle [
174
175
^ muscles includes: aMFTMuscle
176
]
177
178
{ #category : 'initialization' }
179
MFTMuscleGroup >> initialize [
180
181
super initialize.
182
englishName := String new.
183
frenchName := String new.
184
muscles := OrderedCollection new
185
]
186
187
{ #category : 'accessing' }
188
MFTMuscleGroup >> muscles [
189
190
^ muscles
191
]
192
193
{ #category : 'accessing' }
194
MFTMuscleGroup >> muscles: aMFTMuscleCollection [
195
196
muscles := aMFTMuscleCollection asOrderedCollection
197
]
198