tooling/RIB.xctemplate/Default/___FILEBASENAME___Builder.swift (23 lines of code) (raw):

//___FILEHEADER___ import RIBs protocol ___VARIABLE_productName___Dependency: Dependency { // TODO: Make sure to convert the variable into lower-camelcase. var ___VARIABLE_productName___ViewController: ___VARIABLE_productName___ViewControllable { get } // TODO: Declare the set of dependencies required by this RIB, but won't be // created by this RIB. } final class ___VARIABLE_productName___Component: Component<___VARIABLE_productName___Dependency> { // TODO: Make sure to convert the variable into lower-camelcase. fileprivate var ___VARIABLE_productName___ViewController: ___VARIABLE_productName___ViewControllable { return dependency.___VARIABLE_productName___ViewController } // TODO: Declare 'fileprivate' dependencies that are only used by this RIB. } // MARK: - Builder protocol ___VARIABLE_productName___Buildable: Buildable { func build(withListener listener: ___VARIABLE_productName___Listener) -> ___VARIABLE_productName___Routing } final class ___VARIABLE_productName___Builder: Builder<___VARIABLE_productName___Dependency>, ___VARIABLE_productName___Buildable { override init(dependency: ___VARIABLE_productName___Dependency) { super.init(dependency: dependency) } func build(withListener listener: ___VARIABLE_productName___Listener) -> ___VARIABLE_productName___Routing { let component = ___VARIABLE_productName___Component(dependency: dependency) let interactor = ___VARIABLE_productName___Interactor() interactor.listener = listener return ___VARIABLE_productName___Router(interactor: interactor, viewController: component.___VARIABLE_productName___ViewController) } }