Created
April 16, 2017 10:43
-
-
Save Thomvis/eca17b898b3a4d2e59da4ed0366a7b83 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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