Skip to content

Commit 844ea23

Browse files
committed
✨ Iconize
1 parent a859889 commit 844ea23

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

Sources/Cli/Main.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ enum Main {
66
start: Date,
77
end: Date,
88
opts: SharedOptions,
9-
eventSelector: EventSelectorI
9+
selector: EventSelectorI,
10+
transformer: EventTransformer
1011
) {
1112
Log.setDebug(opts.debug)
1213

@@ -35,7 +36,9 @@ enum Main {
3536
eventFilter: eventFilter
3637
)
3738

38-
let events = eventSelector.select(events: unsortedEvents)
39+
let events = selector
40+
.select(events: unsortedEvents)
41+
.map { transformer.transform(event: $0) }
3942
if opts.templatePath.isEmpty {
4043
events.printAsJson()
4144
} else {

Sources/Cli/Next.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ struct Next: ParsableCommand {
3434
]
3535
)
3636

37-
Main.run(start: start, end: end, opts: opts, eventSelector: eventSelector)
37+
Main.run(
38+
start: start, end: end, opts: opts,
39+
selector: eventSelector,
40+
transformer: EventTransformer(rules: Loader.readConfig()?.iconize ?? [])
41+
)
3842
}
3943
}

Sources/Cli/Today.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ struct Today: ParsableCommand {
2727
]
2828
)
2929

30-
Main.run(start: start, end: end, opts: opts, eventSelector: eventSelector)
30+
Main.run(
31+
start: start, end: end, opts: opts,
32+
selector: eventSelector,
33+
transformer: EventTransformer(rules: Loader.readConfig()?.iconize ?? [])
34+
)
3135
}
3236
}

Sources/Model/EventTransformer.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@ import Foundation
22
import swift_lens
33

44
class EventTransformer {
5-
let rule: Rule
5+
let rules: [Rule]
66

77
init(rule: Rule) {
8-
self.rule = rule
8+
rules = [rule]
9+
}
10+
11+
init(rules: [Rule]) {
12+
self.rules = rules
913
}
1014

1115
func transform(event: Event) -> Event {
12-
if event.title.label.range(
16+
for rule in rules where event.title.label.range(
1317
of: rule.regex, options: .regularExpression
1418
) != nil {
1519
return event |> (Event.titleLens * Title.iconLens) *~ rule.icon

0 commit comments

Comments
 (0)