Utils: configure image, retrieve all exercises and muscles.

Commit
eb25071d160a9dcd8a7f3a13931c17b635954637
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
src/MyFitnessTracker/MFTUtils.class.st
index 00000000..7195ce7f 000000..100644
@@ -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: ]