[Pharo] Personal fitness tracker web app.
Clean up and update MFT core.
Changed files
- src/MyFitnessTracker-Core/MFTAthlete.class.st
- src/MyFitnessTracker-Core/MFTExercise.class.st
- src/MyFitnessTracker-Core/MFTMikeMentzer.class.st
- src/MyFitnessTracker-Core/MFTMuscle.class.st
- src/MyFitnessTracker-Core/MFTMuscleGroup.class.st
- src/MyFitnessTracker-Core/MFTObject.class.st
- src/MyFitnessTracker-Core/MFTPrize.class.st
- src/MyFitnessTracker-Core/MFTSet.class.st
- src/MyFitnessTracker-Core/MFTSetGroup.class.st
- src/MyFitnessTracker-Core/MFTUser.class.st
- src/MyFitnessTracker-Core/MFTWeight.class.st
- src/MyFitnessTracker-Core/MFTWorkout.class.st
- src/MyFitnessTracker-Core/MFTWorkoutPlan.class.st
- src/MyFitnessTracker-Core/ManifestMyFitnessTrackerCore.class.st
src/MyFitnessTracker-Core/MFTAthlete.class.st
@@ -1,118 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : 'MFTAthlete',
3
Removed:
#superclass : 'Object',
4
Removed:
#instVars : [
5
Removed:
'name',
6
Removed:
'nickname',
7
Removed:
'born',
8
Removed:
'died',
9
Removed:
'bio',
10
Removed:
'workouts'
11
Removed:
],
12
Removed:
#category : 'MyFitnessTracker-Core',
13
Removed:
#package : 'MyFitnessTracker-Core'
14
Removed:
}
15
Removed:
16
Removed:
{ #category : 'as yet unclassified' }
17
Removed:
MFTAthlete class >> allAthletes [
18
Removed:
19
Removed:
^ { #'Arnold Alois Schwarzenneger'. #'Michael John Mentzer'.
20
Removed:
#'Thomas Steven Platz' }
21
Removed:
]
22
Removed:
23
Removed:
{ #category : 'accessing' }
24
Removed:
MFTAthlete >> bio [
25
Removed:
26
Removed:
^ bio
27
Removed:
]
28
Removed:
29
Removed:
{ #category : 'accessing' }
30
Removed:
MFTAthlete >> born [
31
Removed:
32
Removed:
^ born
33
Removed:
]
34
Removed:
35
Removed:
{ #category : 'accessing' }
36
Removed:
MFTAthlete >> died [
37
Removed:
38
Removed:
^ died
39
Removed:
]
40
Removed:
41
Removed:
{ #category : 'initialization' }
42
Removed:
MFTAthlete >> initialize [
43
Removed:
44
Removed:
super initialize.
45
Removed:
name := 'John Default'.
46
Removed:
nickname := 'Johnny D.'.
47
Removed:
born := Date year: 1990 month: 1 day: 1.
48
Removed:
died := Date year: 2001 month: 1 day: 1.
49
Removed:
bio := 'John Default is still today regarded as one of the most default bodybuilders ever.'
50
Removed:
]
51
Removed:
52
Removed:
{ #category : 'accessing' }
53
Removed:
MFTAthlete >> name [
54
Removed:
55
Removed:
^ name
56
Removed:
]
57
Removed:
58
Removed:
{ #category : 'accessing' }
59
Removed:
MFTAthlete >> nickname [
60
Removed:
61
Removed:
^ nickname
62
Removed:
]
63
Removed:
64
Removed:
{ #category : 'accessing' }
65
Removed:
MFTAthlete >> prizes [
66
Removed:
67
Removed:
^ {
68
Removed:
(MFTPrize year: 1989 competition: 'Default Prize' place: 1).
69
Removed:
(MFTPrize year: 1988 competition: 'Default Prize' place: 2) }
70
Removed:
]
71
Removed:
72
Removed:
{ #category : 'rendering' }
73
Removed:
MFTAthlete >> renderContentOn: html [
74
Removed:
75
Removed:
html heading level2 with: name.
76
Removed:
html heading level3 textMuted with:
77
Removed:
nickname , ' (' , born year asString , '–' , died year asString
78
Removed:
, ')'.
79
Removed:
html outlineButton bePrimary
80
Removed:
dataToggle: 'collapse';
81
Removed:
dataTarget: '#collapsePrizes';
82
Removed:
with: 'Prizes'.
83
Removed:
html collapse
84
Removed:
id: 'collapsePrizes';
85
Removed:
with: [
86
Removed:
html div
87
Removed:
marginTopAndBottom: 3;
88
Removed:
style: 'height: 14em; overflow: scroll';
89
Removed:
with: [ self renderPrizesTableOn: html ] ].
90
Removed:
html paragraph: bio
91
Removed:
]
92
Removed:
93
Removed:
{ #category : 'rendering' }
94
Removed:
MFTAthlete >> renderPrizesTableOn: html [
95
Removed:
96
Removed:
html table
97
Removed:
class: 'table table-striped table-bordered';
98
Removed:
with: [
99
Removed:
html tableHead: [
100
Removed:
html tableRow: [
101
Removed:
html tableHeading: 'Year'.
102
Removed:
html tableHeading: 'Competition'.
103
Removed:
html tableHeading: 'Place'.
104
Removed:
html tableHeading: 'Category' ] ].
105
Removed:
html tableBody: [
106
Removed:
self prizes do: [ :prize |
107
Removed:
html tableRow: [
108
Removed:
html tableData: prize year.
109
Removed:
html tableData: prize competition.
110
Removed:
html tableData: prize place.
111
Removed:
html tableData: prize category ] ] ] ]
112
Removed:
]
113
Removed:
114
Removed:
{ #category : 'accessing' }
115
Removed:
MFTAthlete >> workouts [
116
Removed:
117
Removed:
self subclassResponsibility
118
Removed:
]
src/MyFitnessTracker-Core/MFTExercise.class.st
@@ -9,9 +9,8 @@
9
9
"
10
10
Class {
11
11
#name : 'MFTExercise',
12
Removed:
#superclass : 'Object',
12
Added:
#superclass : 'MFTObject',
13
13
#instVars : [
14
Removed:
'id',
15
14
'primaryMuscleGroupId',
16
15
'englishName',
17
16
'frenchName'
@@ -55,23 +54,13 @@
55
54
frenchName := aString
56
55
]
57
56
58
Removed:
{ #category : 'accessing' }
59
Removed:
MFTExercise >> id [
60
Removed:
61
Removed:
^ id
62
Removed:
]
63
Removed:
64
Removed:
{ #category : 'accessing' }
65
Removed:
MFTExercise >> id: anObject [
66
Removed:
67
Removed:
id := anObject
68
Removed:
]
69
Removed:
70
57
{ #category : 'initialization' }
71
58
MFTExercise >> initialize [
72
59
73
60
super initialize.
74
Removed:
englishName := String new
61
Added:
primaryMuscleGroupId := Integer new.
62
Added:
englishName := String new.
63
Added:
frenchName := String new
75
64
]
76
65
77
66
{ #category : 'accessing' }
src/MyFitnessTracker-Core/MFTMikeMentzer.class.st
@@ -1,102 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : 'MFTMikeMentzer',
3
Removed:
#superclass : 'MFTAthlete',
4
Removed:
#category : 'MyFitnessTracker-Core',
5
Removed:
#package : 'MyFitnessTracker-Core'
6
Removed:
}
7
Removed:
8
Removed:
{ #category : 'initialization' }
9
Removed:
MFTMikeMentzer >> initialize [
10
Removed:
11
Removed:
super initialize.
12
Removed:
name := 'Michael John Mentzer'.
13
Removed:
nickname := 'Mike Mentzer'.
14
Removed:
born := Date year: 1955 month: 11 day: 15.
15
Removed:
died := Date year: 2001 month: 6 day: 10.
16
Removed:
bio := 'Mike Mentzer is most famous for his Heavy Duty training regimen.'
17
Removed:
]
18
Removed:
19
Removed:
{ #category : 'accessing' }
20
Removed:
MFTMikeMentzer >> prizes [
21
Removed:
22
Removed:
^ {
23
Removed:
(MFTPrize year: 1971 competition: 'Mr. Lancaster' place: 1).
24
Removed:
(MFTPrize year: 1971 competition: 'AAU Mr. America' place: 10).
25
Removed:
(MFTPrize year: 1971 competition: 'AAU Teen Mr America' place: 2).
26
Removed:
(MFTPrize
27
Removed:
year: 1975
28
Removed:
competition: 'IFBB Mr. America'
29
Removed:
place: 3
30
Removed:
category: 'Medium').
31
Removed:
(MFTPrize
32
Removed:
year: 1975
33
Removed:
competition: 'ABBA Mr. USA'
34
Removed:
place: 2
35
Removed:
category: 'Medium').
36
Removed:
(MFTPrize
37
Removed:
year: 1976
38
Removed:
competition: 'IFBB Mr. America'
39
Removed:
place: 1
40
Removed:
category: 'Overall').
41
Removed:
(MFTPrize
42
Removed:
year: 1976
43
Removed:
competition: 'IFBB Mr. America'
44
Removed:
place: 1
45
Removed:
category: 'Medium').
46
Removed:
(MFTPrize
47
Removed:
year: 1976
48
Removed:
competition: 'IFBB Mr. Universe'
49
Removed:
place: 2
50
Removed:
category: 'MW').
51
Removed:
(MFTPrize
52
Removed:
year: 1977
53
Removed:
competition: 'IFBB North American Championships'
54
Removed:
place: 1
55
Removed:
category: 'Overall').
56
Removed:
(MFTPrize
57
Removed:
year: 1977
58
Removed:
competition: 'IFBB North American Championships'
59
Removed:
place: 1
60
Removed:
category: 'MW').
61
Removed:
(MFTPrize
62
Removed:
year: 1977
63
Removed:
competition: 'IFBB Mr. Universe'
64
Removed:
place: 2
65
Removed:
category: 'HW').
66
Removed:
(MFTPrize
67
Removed:
year: 1978
68
Removed:
competition: 'IFBB USA vs the World'
69
Removed:
place: 1
70
Removed:
category: 'HW').
71
Removed:
(MFTPrize
72
Removed:
year: 1978
73
Removed:
competition: 'IFBB World Amateur Championships'
74
Removed:
place: 1
75
Removed:
category: 'HW').
76
Removed:
(MFTPrize year: 1978 competition: 'IFBB Mr. Universe' place: 1).
77
Removed:
(MFTPrize year: 1979 competition: 'IFBB Canada Pro Cup' place: 2).
78
Removed:
(MFTPrize
79
Removed:
year: 1979
80
Removed:
competition: 'IFBB Florida Pro Invitational'
81
Removed:
place: 1).
82
Removed:
(MFTPrize
83
Removed:
year: 1979
84
Removed:
competition: 'IFBB Night of Champions'
85
Removed:
place: 3).
86
Removed:
(MFTPrize
87
Removed:
year: 1979
88
Removed:
competition: 'IFBB Mr. Olympia'
89
Removed:
place: 2
90
Removed:
category: 'Overall').
91
Removed:
(MFTPrize
92
Removed:
year: 1979
93
Removed:
competition: 'IFBB Mr. Olympia'
94
Removed:
place: 1
95
Removed:
category: 'Heavyweight Division').
96
Removed:
(MFTPrize
97
Removed:
year: 1979
98
Removed:
competition: 'IFBB Pittsburgh Pro Invitational'
99
Removed:
place: 2).
100
Removed:
(MFTPrize year: 1979 competition: 'IFBB Southern Pro Cup' place: 1).
101
Removed:
(MFTPrize year: 1980 competition: 'IFBB Mr. Olympia' place: 5) }
102
Removed:
]
src/MyFitnessTracker-Core/MFTMuscle.class.st
@@ -1,8 +1,10 @@
1
Added:
"
2
Added:
I represent a muscle of the human body.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTMuscle',
3
Removed:
#superclass : 'Object',
6
Added:
#superclass : 'MFTObject',
4
7
#instVars : [
5
Removed:
'id',
6
8
'primaryMuscleGroupId',
7
9
'latinName',
8
10
'englishName',
@@ -43,21 +45,19 @@
43
45
]
44
46
45
47
{ #category : 'as yet unclassified' }
46
Removed:
MFTMuscle >> function: anObject [
48
Added:
MFTMuscle >> function: aString [
47
49
48
Removed:
function := anObject
50
Added:
function := aString
49
51
]
50
52
51
Removed:
{ #category : 'as yet unclassified' }
52
Removed:
MFTMuscle >> id [
53
Added:
{ #category : 'initialization' }
54
Added:
MFTMuscle >> initialize [
53
55
54
Removed:
^ id
55
Removed:
]
56
Removed:
57
Removed:
{ #category : 'as yet unclassified' }
58
Removed:
MFTMuscle >> id: anObject [
59
Removed:
60
Removed:
id := anObject
56
Added:
super initialize.
57
Added:
primaryMuscleGroupId := Integer new.
58
Added:
latinName := String new.
59
Added:
englishName := String new.
60
Added:
function := String new
61
61
]
62
62
63
63
{ #category : 'as yet unclassified' }
src/MyFitnessTracker-Core/MFTMuscleGroup.class.st
@@ -1,8 +1,10 @@
1
Added:
"
2
Added:
I represent a group of muscles in the human body.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTMuscleGroup',
3
Removed:
#superclass : 'Object',
6
Added:
#superclass : 'MFTObject',
4
7
#instVars : [
5
Removed:
'id',
6
8
'englishName',
7
9
'frenchName',
8
10
'function',
@@ -76,19 +78,7 @@
76
78
function := anObject
77
79
]
78
80
79
Removed:
{ #category : 'as yet unclassified' }
80
Removed:
MFTMuscleGroup >> id [
81
Removed:
82
Removed:
^ id
83
Removed:
]
84
Removed:
85
Removed:
{ #category : 'as yet unclassified' }
86
Removed:
MFTMuscleGroup >> id: anObject [
87
Removed:
88
Removed:
id := anObject
89
Removed:
]
90
Removed:
91
Removed:
{ #category : 'as yet unclassified' }
81
Added:
{ #category : 'initialization' }
92
82
MFTMuscleGroup >> initialize [
93
83
94
84
super initialize.
src/MyFitnessTracker-Core/MFTObject.class.st
@@ -0,0 +1,24 @@
1
Added:
"
2
Added:
I provide an id to all objects in the MFT core domain.
3
Added:
"
4
Added:
Class {
5
Added:
#name : 'MFTObject',
6
Added:
#superclass : 'Object',
7
Added:
#instVars : [
8
Added:
'id'
9
Added:
],
10
Added:
#category : 'MyFitnessTracker-Core',
11
Added:
#package : 'MyFitnessTracker-Core'
12
Added:
}
13
Added:
14
Added:
{ #category : 'accessing' }
15
Added:
MFTObject >> id [
16
Added:
17
Added:
^ id
18
Added:
]
19
Added:
20
Added:
{ #category : 'accessing' }
21
Added:
MFTObject >> id: anObject [
22
Added:
23
Added:
id := anObject
24
Added:
]
src/MyFitnessTracker-Core/MFTPrize.class.st
@@ -1,81 +0,0 @@
1
Removed:
Class {
2
Removed:
#name : 'MFTPrize',
3
Removed:
#superclass : 'Object',
4
Removed:
#instVars : [
5
Removed:
'year',
6
Removed:
'competition',
7
Removed:
'place',
8
Removed:
'category'
9
Removed:
],
10
Removed:
#category : 'MyFitnessTracker-Core',
11
Removed:
#package : 'MyFitnessTracker-Core'
12
Removed:
}
13
Removed:
14
Removed:
{ #category : 'as yet unclassified' }
15
Removed:
MFTPrize class >> year: aDate competition: aCompetition place: anInteger [
16
Removed:
17
Removed:
^ self new
18
Removed:
year: aDate;
19
Removed:
competition: aCompetition;
20
Removed:
place: anInteger;
21
Removed:
yourself
22
Removed:
]
23
Removed:
24
Removed:
{ #category : 'as yet unclassified' }
25
Removed:
MFTPrize class >> year: aDate competition: aCompetition place: anInteger category: aCategory [
26
Removed:
27
Removed:
^ self new
28
Removed:
year: aDate;
29
Removed:
competition: aCompetition;
30
Removed:
place: anInteger;
31
Removed:
category: aCategory;
32
Removed:
yourself
33
Removed:
]
34
Removed:
35
Removed:
{ #category : 'accessing' }
36
Removed:
MFTPrize >> category [
37
Removed:
38
Removed:
^ category
39
Removed:
]
40
Removed:
41
Removed:
{ #category : 'accessing' }
42
Removed:
MFTPrize >> category: anObject [
43
Removed:
44
Removed:
category := anObject
45
Removed:
]
46
Removed:
47
Removed:
{ #category : 'accessing' }
48
Removed:
MFTPrize >> competition [
49
Removed:
50
Removed:
^ competition
51
Removed:
]
52
Removed:
53
Removed:
{ #category : 'accessing' }
54
Removed:
MFTPrize >> competition: anObject [
55
Removed:
56
Removed:
competition := anObject
57
Removed:
]
58
Removed:
59
Removed:
{ #category : 'accessing' }
60
Removed:
MFTPrize >> place [
61
Removed:
62
Removed:
^ place
63
Removed:
]
64
Removed:
65
Removed:
{ #category : 'accessing' }
66
Removed:
MFTPrize >> place: aValue [
67
Removed:
68
Removed:
place := aValue asInteger
69
Removed:
]
70
Removed:
71
Removed:
{ #category : 'accessing' }
72
Removed:
MFTPrize >> year [
73
Removed:
74
Removed:
^ year
75
Removed:
]
76
Removed:
77
Removed:
{ #category : 'accessing' }
78
Removed:
MFTPrize >> year: aDate [
79
Removed:
80
Removed:
year := aDate
81
Removed:
]
src/MyFitnessTracker-Core/MFTSet.class.st
@@ -1,8 +1,10 @@
1
Added:
"
2
Added:
I represent a workout set.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTSet',
3
Removed:
#superclass : 'Object',
6
Added:
#superclass : 'MFTObject',
4
7
#instVars : [
5
Removed:
'id',
6
8
'workoutId',
7
9
'exerciseId',
8
10
'number',
@@ -260,18 +262,6 @@
260
262
MFTSet >> hasVolume [
261
263
262
264
^ self volume ~~ 0
263
Removed:
]
264
Removed:
265
Removed:
{ #category : 'accessing' }
266
Removed:
MFTSet >> id [
267
Removed:
268
Removed:
^ id
269
Removed:
]
270
Removed:
271
Removed:
{ #category : 'accessing' }
272
Removed:
MFTSet >> id: anObject [
273
Removed:
274
Removed:
id := anObject
275
265
]
276
266
277
267
{ #category : 'accessing' }
src/MyFitnessTracker-Core/MFTSetGroup.class.st
@@ -1,3 +1,6 @@
1
Added:
"
2
Added:
I represent a group of sets performed during a workout.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTSetGroup',
3
6
#superclass : 'Object',
src/MyFitnessTracker-Core/MFTUser.class.st
@@ -1,8 +1,10 @@
1
Added:
"
2
Added:
I represent a user of MFT.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTUser',
3
Removed:
#superclass : 'Object',
6
Added:
#superclass : 'MFTObject',
4
7
#instVars : [
5
Removed:
'id',
6
8
'username',
7
9
'passwordHash',
8
10
'realFirstName',
@@ -94,19 +96,7 @@
94
96
dateOfBirth := aDate
95
97
]
96
98
97
Removed:
{ #category : 'as yet unclassified' }
98
Removed:
MFTUser >> id [
99
Removed:
100
Removed:
^ id
101
Removed:
]
102
Removed:
103
Removed:
{ #category : 'as yet unclassified' }
104
Removed:
MFTUser >> id: anObject [
105
Removed:
106
Removed:
id := anObject
107
Removed:
]
108
Removed:
109
Removed:
{ #category : 'as yet unclassified' }
99
Added:
{ #category : 'initialization' }
110
100
MFTUser >> initialize [
111
101
112
102
super initialize.
src/MyFitnessTracker-Core/MFTWeight.class.st
@@ -1,8 +1,10 @@
1
Added:
"
2
Added:
I represent the weight of a user measured at a given date.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTWeight',
3
Removed:
#superclass : 'Object',
6
Added:
#superclass : 'MFTObject',
4
7
#instVars : [
5
Removed:
'id',
6
8
'userId',
7
9
'date',
8
10
'kilograms'
@@ -15,7 +17,8 @@
15
17
MFTWeight class >> kilograms: aWeight date: aDate [
16
18
17
19
^ self new
18
Removed:
initialize: aWeight date: aDate;
20
Added:
weight: aWeight;
21
Added:
date: aDate;
19
22
yourself
20
23
]
21
24
@@ -46,17 +49,17 @@
46
49
]
47
50
48
51
{ #category : 'accessing' }
49
Removed:
MFTWeight >> id [
52
Added:
MFTWeight >> date: anObject [
50
53
51
Removed:
^ id
54
Added:
date := anObject
52
55
]
53
56
54
57
{ #category : 'initialization' }
55
Removed:
MFTWeight >> initialize: aWeight date: aDate [
58
Added:
MFTWeight >> initialize [
56
59
57
60
super initialize.
58
Removed:
kilograms := aWeight.
59
Removed:
date := aDate
61
Added:
kilograms := Integer new.
62
Added:
date := Date new
60
63
]
61
64
62
65
{ #category : 'accessing' }
@@ -66,7 +69,19 @@
66
69
]
67
70
68
71
{ #category : 'accessing' }
72
Added:
MFTWeight >> kilograms: anObject [
73
Added:
74
Added:
kilograms := anObject
75
Added:
]
76
Added:
77
Added:
{ #category : 'accessing' }
69
78
MFTWeight >> userId [
70
79
71
80
^ userId
81
Added:
]
82
Added:
83
Added:
{ #category : 'accessing' }
84
Added:
MFTWeight >> userId: anObject [
85
Added:
86
Added:
userId := anObject
72
87
]
src/MyFitnessTracker-Core/MFTWorkout.class.st
@@ -1,8 +1,10 @@
1
Added:
"
2
Added:
I represent a user's workout.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTWorkout',
3
Removed:
#superclass : 'Object',
6
Added:
#superclass : 'MFTObject',
4
7
#instVars : [
5
Removed:
'id',
6
8
'userId',
7
9
'date',
8
10
'primaryMuscleGroupId',
@@ -102,29 +104,6 @@
102
104
{ #category : 'as yet unclassified' }
103
105
MFTWorkout >> date: aDate [
104
106
date := aDate
105
Removed:
]
106
Removed:
107
Removed:
{ #category : 'as yet unclassified' }
108
Removed:
MFTWorkout >> guessPrimaryMuscle [
109
Removed:
"TODO: guess the workout's primary muscle based on the most represented primary muscle in the workout's exercises."
110
Removed:
111
Removed:
| primaryMuscles groupedByMuscle mostFrequentMuscle |
112
Removed:
primaryMuscles := exercises collect: [ :each | each primaryMuscle ].
113
Removed:
groupedByMuscle := primaryMuscles groupBy: [ :each | each ].
114
Removed:
mostFrequentMuscle := groupedByMuscle keys max: [ :muscle |
115
Removed:
(groupedByMuscle at: muscle) size ]
116
Removed:
]
117
Removed:
118
Removed:
{ #category : 'as yet unclassified' }
119
Removed:
MFTWorkout >> id [
120
Removed:
121
Removed:
^ id
122
Removed:
]
123
Removed:
124
Removed:
{ #category : 'as yet unclassified' }
125
Removed:
MFTWorkout >> id: anObject [
126
Removed:
127
Removed:
id := anObject
128
107
]
129
108
130
109
{ #category : 'initialization' }
src/MyFitnessTracker-Core/MFTWorkoutPlan.class.st
@@ -1,12 +1,22 @@
1
Added:
"
2
Added:
I represent a collection of workouts.
3
Added:
"
1
4
Class {
2
5
#name : 'MFTWorkoutPlan',
3
Removed:
#superclass : 'Object',
6
Added:
#superclass : 'MFTObject',
4
7
#instVars : [
5
8
'workouts'
6
9
],
7
10
#category : 'MyFitnessTracker-Core',
8
11
#package : 'MyFitnessTracker-Core'
9
12
}
13
Added:
14
Added:
{ #category : 'accessing' }
15
Added:
MFTWorkoutPlan >> initialize: aMFTWorkoutCollection [
16
Added:
17
Added:
super initialize.
18
Added:
workouts := aMFTWorkoutCollection
19
Added:
]
10
20
11
21
{ #category : 'accessing' }
12
22
MFTWorkoutPlan >> workouts [
src/MyFitnessTracker-Core/ManifestMyFitnessTrackerCore.class.st
@@ -0,0 +1,10 @@
1
Added:
"
2
Added:
Please describe the package using the class comment of the included manifest class. The manifest class also includes other additional metadata for the package. These meta data are used by other tools such as the SmalllintManifestChecker and the critics Browser
3
Added:
"
4
Added:
Class {
5
Added:
#name : 'ManifestMyFitnessTrackerCore',
6
Added:
#superclass : 'PackageManifest',
7
Added:
#category : 'MyFitnessTracker-Core-Manifest',
8
Added:
#package : 'MyFitnessTracker-Core',
9
Added:
#tag : 'Manifest'
10
Added:
}