[Pharo] Personal fitness tracker web app.
Utils: configure image, retrieve all exercises and muscles.
src/MyFitnessTracker/MFTUtils.class.st
@@ -0,0 +1,56 @@
1
Added:
Class {
2
Added:
#name : #MFTUtils,
3
Added:
#superclass : #Object,
4
Added:
#category : #MyFitnessTracker
5
Added:
}
6
Added:
7
Added:
{ #category : #'instance creation' }
8
Added:
MFTUtils class >> allExercises [
9
Added:
10
Added:
| exercises |
11
Added:
exercises := self
12
Added:
allInstancesOfClass: MFTExercise
13
Added:
matchingProtocol: 'exercise'.
14
Added:
exercises := exercises sorted: [ :a :b | a name < b name ].
15
Added:
^ exercises
16
Added:
]
17
Added:
18
Added:
{ #category : #'instance creation' }
19
Added:
MFTUtils class >> allInstancesOfClass: aClass matchingProtocol: aProtocol [
20
Added:
"I return a collection containing instances generated from all of an object's class methods."
21
Added:
22
Added:
| methods instances |
23
Added:
methods := aClass class methodDictionary values select: [ :method |
24
Added:
method category = aProtocol ].
25
Added:
instances := methods collect: [ :method |
26
Added:
aClass perform: method selector ].
27
Added:
^ instances
28
Added:
]
29
Added:
30
Added:
{ #category : #'instance creation' }
31
Added:
MFTUtils class >> allMuscleGroups [
32
Added:
33
Added:
| groups |
34
Added:
groups := self
35
Added:
allInstancesOfClass: MFTMuscleGroup
36
Added:
matchingProtocol: 'body part creation'.
37
Added:
groups := groups sorted: [ :a :b | a name < b name ].
38
Added:
^ groups
39
Added:
]
40
Added:
41
Added:
{ #category : #'image manipulation' }
42
Added:
MFTUtils class >> configureImage [
43
Added:
"I load the latest Seaside and Bootstrap repositories, I then initialize the MFT application."
44
Added:
45
Added:
Metacello new
46
Added:
baseline: 'Seaside3';
47
Added:
repository: 'github://SeasideSt/Seaside:master/repository';
48
Added:
load.
49
Added:
50
Added:
Metacello new
51
Added:
baseline: 'Bootstrap5';
52
Added:
repository: 'github://astares/Seaside-Bootstrap5:master/src';
53
Added:
load.
54
Added:
55
Added:
MFTRootComponent initialize
56
Added:
]