Skip to content

Instantly share code, notes, and snippets.

@quintonpryce
Created July 18, 2019 19:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quintonpryce/e9b5b6c6cf514ba46d82751671022077 to your computer and use it in GitHub Desktop.
Save quintonpryce/e9b5b6c6cf514ba46d82751671022077 to your computer and use it in GitHub Desktop.
Tracking in the core
public func track(event: AnalyticsEvent) {
trackAnalytic(event: event, parameters: EmptyParameter())
}
public func track<T>(event: AnalyticsEvent, with parameters: T) where T : AnalyticsParameter {
trackAnalytic(event: event, parameters: parameters)
}
private func trackAnalytic<T: AnalyticsParameter>(event: AnalyticsEvent, parameters: T?) {
for trackerKey in event.supportedTrackers {
if let eventTracker = eventTrackers[trackerKey] {
if let parameters = parameters, !parameters.isEmpty() {
eventTracker.track(event: event.name, with: parameters)
} else {
eventTracker.track(event: event.name)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment