From fad2867260fcdbe0565ad9d48c0b73af176848e2 Mon Sep 17 00:00:00 2001 From: Dragos Resetnic Date: Sun, 14 Jul 2019 17:23:25 +0300 Subject: [PATCH] Added convenience init so you can initialize VIPER modules with code created View Controllers (without .xib). --- swifty_viper/Code/Configurator/configurator.swift.liquid | 2 +- swifty_viper/Code/Configurator/initializer.swift.liquid | 9 ++++++++- .../Tests/Configurator/configurator_tests.swift.liquid | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/swifty_viper/Code/Configurator/configurator.swift.liquid b/swifty_viper/Code/Configurator/configurator.swift.liquid index 1009a60..c47f91a 100644 --- a/swifty_viper/Code/Configurator/configurator.swift.liquid +++ b/swifty_viper/Code/Configurator/configurator.swift.liquid @@ -13,7 +13,7 @@ class {{ module_info.name }}ModuleConfigurator { func configureModuleForViewInput(viewInput: UIViewController) { if let viewController = viewInput as? {{ module_info.name }}ViewController { - configure(viewController) + configure(viewController: viewController) } } diff --git a/swifty_viper/Code/Configurator/initializer.swift.liquid b/swifty_viper/Code/Configurator/initializer.swift.liquid index b2cc591..6b15d99 100644 --- a/swifty_viper/Code/Configurator/initializer.swift.liquid +++ b/swifty_viper/Code/Configurator/initializer.swift.liquid @@ -1,3 +1,4 @@ + // // {{ prefix }}{{ module_info.name }}{{ module_info.file_name }} // {{ module_info.project_name }} @@ -16,7 +17,13 @@ class {{ module_info.name }}ModuleInitializer: NSObject { override func awakeFromNib() { let configurator = {{ module_info.name }}ModuleConfigurator() - configurator.configureModuleForViewInput({{ module_info.name | downcase }}ViewController) + configurator.configureModuleForViewInput(viewInput: {{ module_info.name | downcase }}ViewController) + } + + convenience init({{ module_info.name | downcase }}ViewController: {{ module_info.name }}ViewController) { + self.init() + let configurator = {{ module_info.name }}ModuleConfigurator() + configurator.configureModuleForViewInput(viewInput: {{ module_info.name | downcase }}ViewController) } } diff --git a/swifty_viper/Tests/Configurator/configurator_tests.swift.liquid b/swifty_viper/Tests/Configurator/configurator_tests.swift.liquid index 0cc3ab9..30d66c4 100644 --- a/swifty_viper/Tests/Configurator/configurator_tests.swift.liquid +++ b/swifty_viper/Tests/Configurator/configurator_tests.swift.liquid @@ -27,7 +27,7 @@ class {{ module_info.name }}ModuleConfiguratorTests: XCTestCase { let configurator = {{ module_info.name }}ModuleConfigurator() //when - configurator.configureModuleForViewInput(viewController) + configurator.configureModuleForViewInput(viewInput: viewController) //then XCTAssertNotNil(viewController.output, "{{ module_info.name }}ViewController is nil after configuration")