Skip to content

Commit aa784ba

Browse files
authored
Merge pull request #362 from macta/better-legacy-exercise-support
Better legacy exercise support
2 parents 4ddd170 + 675c23b commit aa784ba

File tree

6 files changed

+32
-3
lines changed

6 files changed

+32
-3
lines changed

dev/src/ExercismTests/ExercismExerciseTest.class.st

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ ExercismExerciseTest >> testExercisePackageTag [
7575
ExercismExerciseTest >> testFind [
7676

7777
self assert: (ExercismExercise find: 'hello-world' ifAbsent: [nil]) equals: HelloWorldTest exercise.
78-
self assert: (ExercismExercise find: 'missing-exercise' ifAbsent: [ 'missing' ]) equals: 'missing'
78+
self assert: (ExercismExercise find: 'missing-exercise' ifAbsent: [ 'missing' ]) equals: 'missing'.
79+
self assert: (ExercismExercise find: 'missing-exercise' ifAbsent: [ :name | 'missing param' ]) equals: 'missing param'
7980
]
8081

8182
{ #category : #tests }
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Class {
2+
#name : #ExercismPackageTest,
3+
#superclass : #TestCase,
4+
#category : #'ExercismTests-UnitTests'
5+
}
6+
7+
{ #category : #tests }
8+
ExercismPackageTest >> testExerciseNameOnRPackage [
9+
self assert: TestExerciseTest package exerciseName equals: 'ExerciseNormal'.
10+
self assert: HelloWorldTest package exerciseName equals: 'HelloWorld'
11+
]
12+
13+
{ #category : #tests }
14+
ExercismPackageTest >> testExerciseNameOnRPackageTag [
15+
"Test legacy exerciseNames on RPackageTags"
16+
self assert: self class package classTags anyOne exerciseName equals: 'UnitTests'.
17+
]

dev/src/ExercismTools/ClyExercismSubmitCommand.class.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ ClyExercismSubmitCommand >> description [
3131
ClyExercismSubmitCommand >> execute [
3232
| exerciseName result |
3333

34-
exerciseName := ($@ split: self selectedItem name) last.
34+
exerciseName := self selectedItem exerciseName.
3535

3636
[ result := ExercismManager default
3737
submitToExercism:

dev/src/ExercismTools/ExercismExercise.class.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ ExercismExercise class >> find: exercismName ifAbsent: aBlock [
5656
kebabedName := exercismName asKebabCase.
5757
^ self allExercises
5858
detect: [ :ex | ex name = kebabedName ]
59-
ifNone: aBlock
59+
ifNone: [ aBlock cull: exercismName ]
6060
]
6161

6262
{ #category : #'instance creation' }

dev/src/ExercismTools/RPackage.extension.st

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
Extension { #name : #RPackage }
22

3+
{ #category : #'*ExercismTools' }
4+
RPackage >> exerciseName [
5+
^ (name allRegexMatches: '\w+') last
6+
]
7+
38
{ #category : #'*ExercismTools' }
49
RPackage >> root [
510
^self

dev/src/ExercismTools/RPackageTag.extension.st

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ RPackageTag >> definedClasses [
55
^ self classes
66
]
77

8+
{ #category : #'*ExercismTools' }
9+
RPackageTag >> exerciseName [
10+
"Provided for legacy compatibility"
11+
^self name
12+
]
13+
814
{ #category : #'*ExercismTools' }
915
RPackageTag >> promoteAsExercismRPackage [
1016
"This method converts this rpackage tag into an rpackage compatible with exercism"

0 commit comments

Comments
 (0)