Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 31 additions & 6 deletions src/Microdown-BookTester/MicMethodReferenceChecker.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ SpPresenter>>methodTwo
Class {
#name : 'MicMethodReferenceChecker',
#superclass : 'MicChecker',
#instVars : [
'requireHash'
],
#category : 'Microdown-BookTester-Checker-MethodReferences',
#package : 'Microdown-BookTester',
#tag : 'Checker-MethodReferences'
Expand All @@ -36,19 +39,41 @@ MicMethodReferenceChecker class >> checkerName [
^ 'MethodReferenceUsingHash'
]

{ #category : 'visiting - inline elements' }
MicMethodReferenceChecker >> initialize [
super initialize.
requireHash := true
]

{ #category : 'visiting - inline elements' }
MicMethodReferenceChecker >> requireHash [
^ requireHash
]

{ #category : 'visiting - inline elements' }
MicMethodReferenceChecker >> requireHash: aBoolean [
requireHash := aBoolean
]

{ #category : 'visiting - inline elements' }
MicMethodReferenceChecker >> visitText: aMicText [
| text withHash withhoutHash |
| text hasHash hasNoHash hasError |
text := aMicText bodyString.
text ifNil: [ ^ self ].
withHash := text includesSubstring: '>>#'.
withhoutHash := (RxMatcher forString: '>>[^#]') matchesIn: text.
(withHash and: [ withhoutHash notEmpty ]) ifTrue: [

hasHash := text includesSubstring: '>>#'.
hasNoHash := (RxMatcher forString: '>>[^#]') matchesIn: text.

hasError := self requireHash
ifTrue: [ hasNoHash notEmpty ]
ifFalse: [ hasHash ].

hasError ifTrue: [
results add: (MicMethodReferenceResult new
micElement: aMicText;
inFile: aMicText;
detail: text;
yourself
yourself
)
]
]
]
21 changes: 19 additions & 2 deletions src/Microdown-BookTester/MicMethodReferenceCheckerTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,22 @@ MicMethodReferenceCheckerTest >> testMixedReferenceDetected [

]

{ #category : 'tests' }
MicMethodReferenceCheckerTest >> testWhenRequireHashIsFalseThenWithHashRaisesError [

checker requireHash: false.
checker checkProject: fileSystem / 'withHashOnly.md'.
self deny: checker isOkay
]

{ #category : 'tests' }
MicMethodReferenceCheckerTest >> testWhenRequireHashIsTrueThenWithoutHashRaisesError [

checker requireHash: true.
checker checkProject: fileSystem / 'withoutHashOnly.md'.
self deny: checker isOkay
]

{ #category : 'tests' }
MicMethodReferenceCheckerTest >> testWithHashOnlyCorrect [
checker checkProject: fileSystem / 'withHashOnly.md'.
Expand All @@ -65,7 +81,8 @@ MicMethodReferenceCheckerTest >> testWithHashOnlyCorrect [

{ #category : 'tests' }
MicMethodReferenceCheckerTest >> testWithoutHashOnlyCorrect [

checker requireHash: false.
checker checkProject: fileSystem / 'withoutHashOnly.md'.
self assert: checker isOkay.

self assert: checker isOkay
]
Loading