Skip to content

Commit 66c906c

Browse files
hollesseclaude
andcommitted
Move timer room logic to WebTimer constructor and enrich config with branch qualifier
Refactors getMobTimerRoom() into two responsibilities: 1. enrichConfigurationWithBranchQualifier() in mob.go extracts the qualifier from the current WIP branch and writes it to the configuration 2. WebTimer constructor determines the effective timer room based on TimerRoomUseWipBranchQualifier setting This fixes the bug where the extracted qualifier was not written to the configuration, making it unavailable for other commands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 7df582e commit 66c906c

3 files changed

Lines changed: 27 additions & 26 deletions

File tree

mob.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,24 @@ func determineBranches(currentBranch Branch, localBranches []string, configurati
435435
return
436436
}
437437

438+
func enrichConfigurationWithBranchQualifier(configuration config.Configuration) config.Configuration {
439+
if !isGit() {
440+
return configuration
441+
}
442+
443+
if configuration.WipBranchQualifier == "" {
444+
currentBranch := gitCurrentBranch()
445+
currentBaseBranch, _ := determineBranches(currentBranch, gitBranches(), configuration)
446+
447+
if currentBranch.IsWipBranch(configuration) {
448+
wipBranchWithoutWipPrefix := currentBranch.removeWipPrefix(configuration).Name
449+
configuration.WipBranchQualifier = removePrefix(removePrefix(wipBranchWithoutWipPrefix, currentBaseBranch.Name), configuration.WipBranchQualifierSeparator)
450+
}
451+
}
452+
453+
return configuration
454+
}
455+
438456
func injectCommandWithMessage(command string, message string) string {
439457
placeHolders := strings.Count(command, "%s")
440458
if placeHolders > 1 {

timer.go

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func StartTimer(timerInMinutes string, configuration config.Configuration) {
1515
}
1616

1717
func startTimer(timerInMinutes string, configuration config.Configuration) error {
18-
configuration.TimerRoom = getMobTimerRoom(configuration)
18+
configuration = enrichConfigurationWithBranchQualifier(configuration)
1919
return timerpkg.RunTimer(timerInMinutes, configuration)
2020
}
2121

@@ -26,29 +26,6 @@ func StartBreakTimer(timerInMinutes string, configuration config.Configuration)
2626
}
2727

2828
func startBreakTimer(timerInMinutes string, configuration config.Configuration) error {
29-
configuration.TimerRoom = getMobTimerRoom(configuration)
29+
configuration = enrichConfigurationWithBranchQualifier(configuration)
3030
return timerpkg.RunBreakTimer(timerInMinutes, configuration)
3131
}
32-
33-
func getMobTimerRoom(configuration config.Configuration) string {
34-
if !isGit() {
35-
return configuration.TimerRoom
36-
}
37-
38-
currentWipBranchQualifier := configuration.WipBranchQualifier
39-
if currentWipBranchQualifier == "" {
40-
currentBranch := gitCurrentBranch()
41-
currentBaseBranch, _ := determineBranches(currentBranch, gitBranches(), configuration)
42-
43-
if currentBranch.IsWipBranch(configuration) {
44-
wipBranchWithoutWipPrefix := currentBranch.removeWipPrefix(configuration).Name
45-
currentWipBranchQualifier = removePrefix(removePrefix(wipBranchWithoutWipPrefix, currentBaseBranch.Name), configuration.WipBranchQualifierSeparator)
46-
}
47-
}
48-
49-
if configuration.TimerRoomUseWipBranchQualifier && currentWipBranchQualifier != "" {
50-
return currentWipBranchQualifier
51-
}
52-
53-
return configuration.TimerRoom
54-
}

timer/webtimer/webtimer.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,14 @@ type WebTimer struct {
2828
}
2929

3030
func NewWebTimer(configuration config.Configuration) WebTimer {
31+
// Determine the effective timer room
32+
room := configuration.TimerRoom
33+
if configuration.TimerRoomUseWipBranchQualifier && configuration.WipBranchQualifier != "" {
34+
room = configuration.WipBranchQualifier
35+
}
36+
3137
return WebTimer{
32-
room: configuration.TimerRoom,
38+
room: room,
3339
timerUser: getUserForMobTimer(configuration.TimerUser),
3440
timerUrl: configuration.TimerUrl,
3541
timerInsecure: configuration.TimerInsecure,

0 commit comments

Comments
 (0)