Skip to content

Commit b2db420

Browse files
committed
♻️ Pull up event selector
1 parent de6a4df commit b2db420

File tree

3 files changed

+8
-13
lines changed

3 files changed

+8
-13
lines changed

Sources/Cli/Main.swift

+4-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ enum Main {
66
start: Date,
77
end: Date,
88
opts: SharedOptions,
9-
eventSelector: ([EKEvent]) -> [EKEvent]
9+
eventSelector: ([Event]) -> [Event]
1010
) {
1111
Log.setDebug(opts.debug)
1212

@@ -26,13 +26,12 @@ enum Main {
2626
maxNumAttendees: opts.maxNumAttendees
2727
)
2828

29-
let events = EventStore().fetch(
29+
let events = eventSelector(EventStore().fetch(
3030
start: start,
3131
end: end,
3232
calendarFilter: calendarFilter,
33-
eventFilter: eventFilter,
34-
eventSelector: eventSelector
35-
).sorted { $0.schedule.end.inMinutes > $1.schedule.end.inMinutes }
33+
eventFilter: eventFilter
34+
)).sorted { $0.schedule.end.inMinutes > $1.schedule.end.inMinutes }
3635

3736
if opts.templatePath.isEmpty {
3837
events.printAsJson()

Sources/EventStore.swift

+2-4
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,13 @@ struct EventStore {
4444
/// - end: Maximum start date of event
4545
/// - calendarFilter: A filter to select certain calendars
4646
/// - eventFilter: A filter to select certain events
47-
/// - eventSelector: Manipulate array of events after fetching and filtering; e.g. for sorting
4847
///
4948
/// - Returns: a list of events
5049
func fetch(
5150
start: Date,
5251
end: Date,
5352
calendarFilter: (PlanCalendar) -> Bool,
54-
eventFilter: (Event) -> Bool,
55-
eventSelector: ([EKEvent]) -> [EKEvent]
53+
eventFilter: (Event) -> Bool
5654
) -> [Event] {
5755
let eventStore = grantAccess()
5856

@@ -73,7 +71,7 @@ struct EventStore {
7371
calendars: calendars
7472
)
7573

76-
return eventSelector(eventStore.events(matching: predicate))
74+
return eventStore.events(matching: predicate)
7775
.map { event in
7876
event.asEvent()
7977
}

Sources/Filters/EventSelector.swift

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
import EventKit
2-
31
class EventSelector {
4-
static func all() -> (([EKEvent]) -> [EKEvent]) {
2+
static func all() -> (([Event]) -> [Event]) {
53
{ events in
64
events
75
}
86
}
97

10-
static func prefix(count: Int) -> (([EKEvent]) -> [EKEvent]) {
8+
static func prefix(count: Int) -> (([Event]) -> [Event]) {
119
{ events in
1210
Array(events.prefix(count))
1311
}

0 commit comments

Comments
 (0)