Skip to content

Instantly share code, notes, and snippets.

@Thomvis
Created April 16, 2017 10:43
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 Thomvis/eca17b898b3a4d2e59da4ed0366a7b83 to your computer and use it in GitHub Desktop.
Save Thomvis/eca17b898b3a4d2e59da4ed0366a7b83 to your computer and use it in GitHub Desktop.
// Generated using Sourcery 0.5.9 — https://github.com/krzysztofzablocki/Sourcery
// DO NOT EDIT
import Dispatch
public typealias Provider<E> = () -> E
class Container {
private let apiServiceQueue = DispatchQueue(label: "singleton:apiService")
private var __apiService: APIService?
public func apiService() -> APIService {
return apiServiceQueue.sync {
let res = __apiService ?? _apiService()
self.__apiService = res
return res
}
}
private func _apiService() -> APIService {
return APIService(
)
}
public func userDetailViewController() -> UserDetailViewController {
return _userDetailViewController()
}
private func _userDetailViewController() -> UserDetailViewController {
return UserDetailViewController(
viewModel: userDetailViewModel()
)
}
public func userDetailViewModel() -> UserDetailViewModel {
return _userDetailViewModel()
}
private func _userDetailViewModel() -> UserDetailViewModel {
return UserDetailViewModel(
userRepository: userRepository()
)
}
public func userListViewController() -> UserListViewController {
return _userListViewController()
}
private func _userListViewController() -> UserListViewController {
return UserListViewController(
viewModel: userListViewModel()
)
}
public func userListViewModel() -> UserListViewModel {
return _userListViewModel()
}
private func _userListViewModel() -> UserListViewModel {
return UserListViewModel(
userRepository: userRepository(),
detailVMProvider: userDetailViewModel
)
}
private let userRepositoryQueue = DispatchQueue(label: "singleton:userRepository")
private var __userRepository: UserRepository?
public func userRepository() -> UserRepository {
return userRepositoryQueue.sync {
let res = __userRepository ?? _userRepository()
self.__userRepository = res
return res
}
}
private func _userRepository() -> UserRepository {
return UserRepository(
apiService: apiService()
)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment