vipergen-xctestable 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +157 -0
  4. data/bin/vipergen +9 -0
  5. data/lib/templates/default/objc/DataManager/API/VIPERAPIDataManager.h +12 -0
  6. data/lib/templates/default/objc/DataManager/API/VIPERAPIDataManager.m +10 -0
  7. data/lib/templates/default/objc/DataManager/Local/VIPERLocalDataManager.h +12 -0
  8. data/lib/templates/default/objc/DataManager/Local/VIPERLocalDataManager.m +10 -0
  9. data/lib/templates/default/objc/Interactor/VIPERInteractor.h +16 -0
  10. data/lib/templates/default/objc/Interactor/VIPERInteractor.m +10 -0
  11. data/lib/templates/default/objc/Interactor/VIPERItem.h +10 -0
  12. data/lib/templates/default/objc/Interactor/VIPERItem.m +10 -0
  13. data/lib/templates/default/objc/Presenter/VIPERPresenter.h +17 -0
  14. data/lib/templates/default/objc/Presenter/VIPERPresenter.m +11 -0
  15. data/lib/templates/default/objc/Protocols/VIPERProtocols.h +80 -0
  16. data/lib/templates/default/objc/View/VIPERView.h +13 -0
  17. data/lib/templates/default/objc/View/VIPERView.m +32 -0
  18. data/lib/templates/default/objc/WireFrame/VIPERWireFrame.h +18 -0
  19. data/lib/templates/default/objc/WireFrame/VIPERWireFrame.m +32 -0
  20. data/lib/templates/default/swift/DataManager/API/VIPERAPIDataManager.swift +11 -0
  21. data/lib/templates/default/swift/DataManager/Local/VIPERLocalDataManager.swift +11 -0
  22. data/lib/templates/default/swift/Interactor/VIPERInteractor.swift +15 -0
  23. data/lib/templates/default/swift/Interactor/VIPERItem.swift +13 -0
  24. data/lib/templates/default/swift/Presenter/VIPERPresenter.swift +15 -0
  25. data/lib/templates/default/swift/Protocols/VIPERProtocols.swift +70 -0
  26. data/lib/templates/default/swift/View/VIPERView.swift +12 -0
  27. data/lib/templates/default/swift/WireFrame/VIPERWireFrame.swift +29 -0
  28. data/lib/templates/default/viperspec.yml +4 -0
  29. data/lib/templates/testable/objc/DataManager/VIPERDataManager.h +15 -0
  30. data/lib/templates/testable/objc/DataManager/VIPERDataManager.m +11 -0
  31. data/lib/templates/testable/objc/Interactor/VIPERInteractor.h +16 -0
  32. data/lib/templates/testable/objc/Interactor/VIPERInteractor.m +10 -0
  33. data/lib/templates/testable/objc/Interactor/VIPERInteractorSpec.m +31 -0
  34. data/lib/templates/testable/objc/Presenter/VIPERPresenter.h +18 -0
  35. data/lib/templates/testable/objc/Presenter/VIPERPresenter.m +11 -0
  36. data/lib/templates/testable/objc/Presenter/VIPERPresenterSpec.m +31 -0
  37. data/lib/templates/testable/objc/Protocols/VIPERProtocols.h +64 -0
  38. data/lib/templates/testable/objc/ViewController/VIPERViewController.h +13 -0
  39. data/lib/templates/testable/objc/ViewController/VIPERViewController.m +32 -0
  40. data/lib/templates/testable/objc/ViewController/VIPERViewControllerSpec.m +31 -0
  41. data/lib/templates/testable/objc/WireFrame/VIPERWireFrame.h +19 -0
  42. data/lib/templates/testable/objc/WireFrame/VIPERWireFrame.m +31 -0
  43. data/lib/templates/testable/swift/DataManager/API/VIPERAPIDataManager.swift +11 -0
  44. data/lib/templates/testable/swift/DataManager/Local/VIPERLocalDataManager.swift +11 -0
  45. data/lib/templates/testable/swift/Interactor/VIPERInteractor.swift +15 -0
  46. data/lib/templates/testable/swift/Interactor/VIPERInteractorSpec.swift +22 -0
  47. data/lib/templates/testable/swift/Presenter/VIPERPresenter.swift +15 -0
  48. data/lib/templates/testable/swift/Presenter/VIPERPresenterSpec.swift +22 -0
  49. data/lib/templates/testable/swift/Protocols/VIPERProtocols.swift +70 -0
  50. data/lib/templates/testable/swift/View/VIPERView.swift +12 -0
  51. data/lib/templates/testable/swift/View/VIPERViewSpec.swift +22 -0
  52. data/lib/templates/testable/swift/WireFrame/VIPERWireFrame.swift +31 -0
  53. data/lib/templates/testable/viperspec.yml +4 -0
  54. data/lib/templates/xctestable/objc/DataManager/VIPERDataManager.h +15 -0
  55. data/lib/templates/xctestable/objc/DataManager/VIPERDataManager.m +11 -0
  56. data/lib/templates/xctestable/objc/Interactor/VIPERInteractor.h +16 -0
  57. data/lib/templates/xctestable/objc/Interactor/VIPERInteractor.m +10 -0
  58. data/lib/templates/xctestable/objc/Interactor/VIPERInteractorSpec.m +31 -0
  59. data/lib/templates/xctestable/objc/Presenter/VIPERPresenter.h +18 -0
  60. data/lib/templates/xctestable/objc/Presenter/VIPERPresenter.m +11 -0
  61. data/lib/templates/xctestable/objc/Presenter/VIPERPresenterSpec.m +31 -0
  62. data/lib/templates/xctestable/objc/Protocols/VIPERProtocols.h +64 -0
  63. data/lib/templates/xctestable/objc/ViewController/VIPERViewController.h +13 -0
  64. data/lib/templates/xctestable/objc/ViewController/VIPERViewController.m +32 -0
  65. data/lib/templates/xctestable/objc/ViewController/VIPERViewControllerSpec.m +31 -0
  66. data/lib/templates/xctestable/objc/WireFrame/VIPERWireFrame.h +19 -0
  67. data/lib/templates/xctestable/objc/WireFrame/VIPERWireFrame.m +31 -0
  68. data/lib/templates/xctestable/swift/DataManager/API/VIPERAPIDataManager.swift +11 -0
  69. data/lib/templates/xctestable/swift/DataManager/Local/VIPERLocalDataManager.swift +11 -0
  70. data/lib/templates/xctestable/swift/Interactor/VIPERInteractor.swift +15 -0
  71. data/lib/templates/xctestable/swift/Interactor/VIPERInteractorTests.swift +29 -0
  72. data/lib/templates/xctestable/swift/Presenter/VIPERPresenter.swift +15 -0
  73. data/lib/templates/xctestable/swift/Presenter/VIPERPresenterTests.swift +29 -0
  74. data/lib/templates/xctestable/swift/Protocols/VIPERProtocols.swift +70 -0
  75. data/lib/templates/xctestable/swift/View/VIPERView.swift +12 -0
  76. data/lib/templates/xctestable/swift/View/VIPERViewTests.swift +29 -0
  77. data/lib/templates/xctestable/swift/WireFrame/VIPERWireFrame.swift +32 -0
  78. data/lib/templates/xctestable/viperspec.yml +4 -0
  79. data/lib/vipergen/dirutils.rb +17 -0
  80. data/lib/vipergen/filemanager.rb +51 -0
  81. data/lib/vipergen/generator.rb +66 -0
  82. data/lib/vipergen/templatemanager.rb +53 -0
  83. data/lib/vipergen/version.rb +4 -0
  84. data/lib/vipergen/viperthor.rb +21 -0
  85. data/lib/vipergen.rb +6 -0
  86. data/spec/spec_helper.rb +4 -0
  87. data/spec/vipergen/vipergen_spec.rb +133 -0
  88. metadata +207 -0
@@ -0,0 +1,29 @@
1
+ //
2
+ // Created by AUTHOR
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ class VIPERWireFrame: VIPERWireFrameProtocol
9
+ {
10
+ class func presentVIPERModule(fromView view: AnyObject)
11
+ {
12
+ // Generating module components
13
+ var view: VIPERViewProtocol = VIPERView()
14
+ var presenter: protocol<VIPERPresenterProtocol, VIPERInteractorOutputProtocol> = VIPERPresenter()
15
+ var interactor: VIPERInteractorInputProtocol = VIPERInteractor()
16
+ var APIDataManager: VIPERAPIDataManagerInputProtocol = VIPERAPIDataManager()
17
+ var localDataManager: VIPERLocalDataManagerInputProtocol = VIPERLocalDataManager()
18
+ var wireFrame: VIPERWireFrameProtocol = VIPERWireFrame()
19
+
20
+ // Connecting
21
+ view.presenter = presenter
22
+ presenter.view = view
23
+ presenter.wireFrame = wireFrame
24
+ presenter.interactor = interactor
25
+ interactor.presenter = presenter
26
+ interactor.APIDataManager = APIDataManager
27
+ interactor.localDatamanager = localDataManager
28
+ }
29
+ }
@@ -0,0 +1,4 @@
1
+ author: pepi
2
+ author_email: pepibumur@gmail.com
3
+ template_description: Default template with the simplest structure using VIPER
4
+ updated_at: 2014-08-24
@@ -0,0 +1,15 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+ #import "VIPERProtocols.h"
8
+
9
+
10
+ @interface VIPERDataManager : NSObject <VIPERDataManagerInputProtocol>
11
+
12
+ // Properties
13
+ @property (nonatomic, weak) id <VIPERDataManagerOutputProtocol> interactor;
14
+
15
+ @end
@@ -0,0 +1,11 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import "VIPERDataManager.h"
7
+
8
+
9
+ @implementation VIPERDataManager
10
+
11
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+ #import "VIPERProtocols.h"
8
+
9
+
10
+ @interface VIPERInteractor : NSObject <VIPERInteractorInputProtocol, VIPERDataManagerOutputProtocol>
11
+
12
+ // Properties
13
+ @property (nonatomic, weak) id <VIPERInteractorOutputProtocol> presenter;
14
+ @property (nonatomic, strong) id <VIPERDataManagerInputProtocol> dataManager;
15
+
16
+ @end
@@ -0,0 +1,10 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import "VIPERInteractor.h"
7
+
8
+ @implementation VIPERInteractor
9
+
10
+ @end
@@ -0,0 +1,31 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ //#import "Spec.h" - this header should have imports of Specta, Expecta, OCMokito, OCHamrest
7
+ #import "VIPERInteractor.h"
8
+
9
+
10
+ SpecBegin(VIPERInteractor)
11
+
12
+ describe(@"VIPERInteractor",^{
13
+ __block VIPERInteractor *sut;
14
+
15
+ beforeEach(^{
16
+
17
+ });
18
+
19
+ afterEach(^{
20
+ sut = nil;
21
+ });
22
+
23
+ describe(@"VIPERInteractorComponent",{
24
+ it(@"VIPERInteractorComponent should pass test",{
25
+
26
+ });
27
+ });
28
+
29
+ });
30
+
31
+ SpecEnd
@@ -0,0 +1,18 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+ #import "VIPERProtocols.h"
8
+
9
+ @class VIPERWireFrame;
10
+
11
+ @interface VIPERPresenter : NSObject <VIPERPresenterProtocol, VIPERInteractorOutputProtocol>
12
+
13
+ // Properties
14
+ @property (nonatomic, weak) id <VIPERViewProtocol> view;
15
+ @property (nonatomic, strong) id <VIPERInteractorInputProtocol> interactor;
16
+ @property (nonatomic, strong) VIPERWireFrame *wireFrame;
17
+
18
+ @end
@@ -0,0 +1,11 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import "VIPERPresenter.h"
7
+ #import "VIPERWireframe.h"
8
+
9
+ @implementation VIPERPresenter
10
+
11
+ @end
@@ -0,0 +1,31 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ //#import "Spec.h" - this header should have imports of Specta, Expecta, OCMokito, OCHamrest
7
+ #import "VIPERPresenter.h"
8
+
9
+
10
+ SpecBegin(VIPERPresenter)
11
+
12
+ describe(@"VIPERPresenter",^{
13
+ __block VIPERPresenter *sut;
14
+
15
+ beforeEach(^{
16
+
17
+ });
18
+
19
+ afterEach(^{
20
+ sut = nil;
21
+ });
22
+
23
+ describe(@"VIPERPresenterComponent",{
24
+ it(@"VIPERPresenterComponent should pass test",{
25
+
26
+ });
27
+ });
28
+
29
+ });
30
+
31
+ SpecEnd
@@ -0,0 +1,64 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+ #import <UIKit/UIKit.h>
8
+
9
+ @protocol VIPERDataManagerOutputProtocol;
10
+ @protocol VIPERInteractorOutputProtocol;
11
+ @protocol VIPERInteractorInputProtocol;
12
+ @protocol VIPERViewProtocol;
13
+ @protocol VIPERPresenterProtocol;
14
+ @protocol VIPERDataManagerInputProtocol;
15
+ @class VIPERWireFrame;
16
+
17
+ typedef void (^CompletionBlock)(NSError **error);
18
+
19
+ @protocol VIPERViewProtocol
20
+ @required
21
+ @property (nonatomic, strong) id <VIPERPresenterProtocol> presenter;
22
+ /**
23
+ * Add here your methods for communication VIEWCONTROLLER -> PRESENTER
24
+ */
25
+ @end
26
+
27
+ @protocol VIPERPresenterProtocol
28
+ @required
29
+ @property (nonatomic, weak) id <VIPERViewProtocol> view;
30
+ @property (nonatomic, strong) id <VIPERInteractorInputProtocol> interactor;
31
+ @property (nonatomic, strong) VIPERWireFrame *wireFrame;
32
+ /**
33
+ * Add here your methods for communication VIEWCONTROLLER/WIREFRAME -> PRESENTER
34
+ */
35
+ @end
36
+
37
+ @protocol VIPERInteractorOutputProtocol
38
+ /**
39
+ * Add here your methods for communication INTERACTOR -> PRESENTER
40
+ */
41
+ @end
42
+
43
+ @protocol VIPERInteractorInputProtocol
44
+ @required
45
+ @property (nonatomic, weak) id <VIPERInteractorOutputProtocol> presenter;
46
+ /**
47
+ * Add here your methods for communication PRESENTER -> INTERACTOR
48
+ */
49
+ @end
50
+
51
+
52
+ @protocol VIPERDataManagerInputProtocol
53
+ @property (nonatomic, weak) id <VIPERDataManagerOutputProtocol> interactor;
54
+ /**
55
+ * Add here your methods for communication INTERACTOR -> DATAMANAGER
56
+ */
57
+ @end
58
+
59
+ @protocol VIPERDataManagerOutputProtocol
60
+ @property (nonatomic, strong) id <VIPERDataManagerInputProtocol> dataManager;
61
+ /**
62
+ * Add here your methods for communication DATAMANAGER -> INTERACTOR
63
+ */
64
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <UIKit/UIKit.h>
7
+ #import "VIPERProtocols.h"
8
+
9
+ @interface VIPERViewController : UIViewController <VIPERViewProtocol>
10
+
11
+ @property (nonatomic, strong) id <VIPERPresenterProtocol> presenter;
12
+
13
+ @end
@@ -0,0 +1,32 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import "VIPERViewController.h"
7
+
8
+ @implementation VIPERViewController
9
+
10
+ #pragma mark - ViewController Lifecycle
11
+
12
+ - (void)viewDidLoad
13
+ {
14
+ [super viewDidLoad];
15
+ }
16
+
17
+ - (void)viewDidDisappear:(BOOL)animated
18
+ {
19
+ [super viewDidDisappear:animated];
20
+ }
21
+
22
+ - (void)viewWillAppear:(BOOL)animated
23
+ {
24
+ [super viewWillAppear:animated];
25
+ }
26
+
27
+ - (void)viewWillDisappear:(BOOL)animated
28
+ {
29
+ [super viewWillDisappear:animated];
30
+ }
31
+
32
+ @end
@@ -0,0 +1,31 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ //#import "Spec.h" - this header should have imports of Specta, Expecta, OCMokito, OCHamrest
7
+ #import "VIPERViewController.h"
8
+
9
+
10
+ SpecBegin(VIPERViewController)
11
+
12
+ describe(@"VIPERViewController",^{
13
+ __block VIPERViewController *sut;
14
+
15
+ beforeEach(^{
16
+
17
+ });
18
+
19
+ afterEach(^{
20
+ sut = nil;
21
+ });
22
+
23
+ describe(@"VIPERViewControllerComponent",{
24
+ it(@"VIPERViewControllerComponent should pass test",{
25
+
26
+ });
27
+ });
28
+
29
+ });
30
+
31
+ SpecEnd
@@ -0,0 +1,19 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+ #import "VIPERProtocols.h"
8
+ #import "VIPERViewController.h"
9
+ #import "VIPERDataManager.h"
10
+ #import "VIPERInteractor.h"
11
+ #import "VIPERPresenter.h"
12
+ #import "VIPERWireframe.h"
13
+ #import <UIKit/UIKit.h>
14
+
15
+ @interface VIPERWireFrame : NSObject
16
+
17
+ + (void)presentVIPERModuleFrom:(id)fromView;
18
+
19
+ @end
@@ -0,0 +1,31 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import "VIPERWireFrame.h"
7
+
8
+ @implementation VIPERWireFrame
9
+
10
+ + (void)presentVIPERModuleFrom:(UIViewController*)fromViewController
11
+ {
12
+ // Generating module components
13
+ UIViewController <VIPERViewProtocol> *viewController = [[VIPERViewController alloc] init];
14
+ id <VIPERPresenterProtocol, VIPERInteractorOutputProtocol> presenter = [VIPERPresenter new];
15
+ id <VIPERInteractorInputProtocol, VIPERDataManagerOutputProtocol> interactor = [VIPERInteractor new];
16
+ id <VIPERDataManagerInputProtocol> dataManager = [VIPERDataManager new];
17
+ VIPERWireFrame *wireFrame = [VIPERWireFrame new];
18
+
19
+ // Connecting
20
+ viewController.presenter = presenter;
21
+ presenter.view = viewController;
22
+ presenter.wireFrame = wireFrame;
23
+ presenter.interactor = interactor;
24
+ interactor.presenter = presenter;
25
+ interactor.dataManager = dataManager;
26
+ dataManager.interactor = interactor;
27
+
28
+ //TOODO - New view controller presentation (present, push, pop, .. )
29
+ }
30
+
31
+ @end
@@ -0,0 +1,11 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ final class VIPERAPIDataManager: VIPERAPIDataManagerInputProtocol
9
+ {
10
+ init() {}
11
+ }
@@ -0,0 +1,11 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ final class VIPERLocalDataManager: VIPERLocalDataManagerInputProtocol
9
+ {
10
+ init() {}
11
+ }
@@ -0,0 +1,15 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ final class VIPERInteractor: VIPERInteractorInputProtocol
9
+ {
10
+ weak var presenter: VIPERInteractorOutputProtocol?
11
+ var APIDataManager: VIPERAPIDataManagerInputProtocol?
12
+ var localDataManager: VIPERLocalDataManagerInputProtocol?
13
+
14
+ init() {}
15
+ }
@@ -0,0 +1,22 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Quick
7
+ import Nimble
8
+
9
+ @testable import SWIFT_MODULE
10
+
11
+ class VIPERInteractorSpec: QuickSpec{
12
+
13
+ class Mock{
14
+
15
+ }
16
+
17
+ override func spec(){
18
+ describe(""){
19
+
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,15 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ final class VIPERPresenter: VIPERPresenterProtocol, VIPERInteractorOutputProtocol
9
+ {
10
+ weak var view: VIPERViewProtocol?
11
+ var interactor: VIPERInteractorInputProtocol?
12
+ var wireFrame: VIPERWireFrameProtocol?
13
+
14
+ init() {}
15
+ }
@@ -0,0 +1,22 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Quick
7
+ import Nimble
8
+
9
+ @testable import SWIFT_MODULE
10
+
11
+ class VIPERPresenterSpec: QuickSpec{
12
+
13
+ class Mock{
14
+
15
+ }
16
+
17
+ override func spec(){
18
+ describe(""){
19
+
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,70 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ protocol VIPERViewProtocol: class
9
+ {
10
+ var presenter: VIPERPresenterProtocol? { get set }
11
+ /**
12
+ * Add here your methods for communication PRESENTER -> VIEW
13
+ */
14
+ }
15
+
16
+ protocol VIPERWireFrameProtocol: class
17
+ {
18
+ static func setupVIPERModule(object: AnyObject) -> UIViewController
19
+ /**
20
+ * Add here your methods for communication PRESENTER -> WIREFRAME
21
+ */
22
+ }
23
+
24
+ protocol VIPERPresenterProtocol: class
25
+ {
26
+ var view: VIPERViewProtocol? { get set }
27
+ var interactor: VIPERInteractorInputProtocol? { get set }
28
+ var wireFrame: VIPERWireFrameProtocol? { get set }
29
+ /**
30
+ * Add here your methods for communication VIEW -> PRESENTER
31
+ */
32
+ }
33
+
34
+ protocol VIPERInteractorOutputProtocol: class
35
+ {
36
+ /**
37
+ * Add here your methods for communication INTERACTOR -> PRESENTER
38
+ */
39
+ }
40
+
41
+ protocol VIPERInteractorInputProtocol: class
42
+ {
43
+ var presenter: VIPERInteractorOutputProtocol? { get set }
44
+ var APIDataManager: VIPERAPIDataManagerInputProtocol? { get set }
45
+ var localDataManager: VIPERLocalDataManagerInputProtocol? { get set }
46
+ /**
47
+ * Add here your methods for communication PRESENTER -> INTERACTOR
48
+ */
49
+ }
50
+
51
+ protocol VIPERDataManagerInputProtocol: class
52
+ {
53
+ /**
54
+ * Add here your methods for communication INTERACTOR -> DATAMANAGER
55
+ */
56
+ }
57
+
58
+ protocol VIPERAPIDataManagerInputProtocol: class
59
+ {
60
+ /**
61
+ * Add here your methods for communication INTERACTOR -> APIDATAMANAGER
62
+ */
63
+ }
64
+
65
+ protocol VIPERLocalDataManagerInputProtocol: class
66
+ {
67
+ /**
68
+ * Add here your methods for communication INTERACTOR -> LOCALDATAMANAGER
69
+ */
70
+ }
@@ -0,0 +1,12 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+ import UIKit
8
+
9
+ final class VIPERView: UIViewController, VIPERViewProtocol
10
+ {
11
+ var presenter: VIPERPresenterProtocol?
12
+ }
@@ -0,0 +1,22 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Quick
7
+ import Nimble
8
+
9
+ @testable import SWIFT_MODULE
10
+
11
+ class VIPERViewSpec: QuickSpec{
12
+
13
+ class Mock{
14
+
15
+ }
16
+
17
+ override func spec(){
18
+ describe(""){
19
+
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,31 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+ import UIKit
8
+ final class VIPERWireFrame: VIPERWireFrameProtocol
9
+ {
10
+ class func setupVIPERModule(object: AnyObject) -> UIViewController
11
+ {
12
+ // Generating module components
13
+ let view: VIPERViewProtocol = VIPERView()
14
+ let presenter: protocol<VIPERPresenterProtocol, VIPERInteractorOutputProtocol> = VIPERPresenter()
15
+ let interactor: VIPERInteractorInputProtocol = VIPERInteractor()
16
+ let APIDataManager: VIPERAPIDataManagerInputProtocol = VIPERAPIDataManager()
17
+ let localDataManager: VIPERLocalDataManagerInputProtocol = VIPERLocalDataManager()
18
+ let wireFrame: VIPERWireFrameProtocol = VIPERWireFrame()
19
+
20
+ // Connecting
21
+ view.presenter = presenter
22
+ presenter.view = view
23
+ presenter.wireFrame = wireFrame
24
+ presenter.interactor = interactor
25
+ interactor.presenter = presenter
26
+ interactor.APIDataManager = APIDataManager
27
+ interactor.localDataManager = localDataManager
28
+
29
+ return UINavigationController(rootViewController: view as! UIViewController)
30
+ }
31
+ }
@@ -0,0 +1,4 @@
1
+ author: Michal Wojtysiak (Roche)
2
+ author_email: michal.wojtysiak@roche.com
3
+ template_description: Template for VIPER structure including Tests (BDD/TDD), Swift 2.0 compatible. Quick&Nible for Swift, Specta, Expecta, OCMockito for Obj-C
4
+ updated_at: 2015-10-23
@@ -0,0 +1,15 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+ #import "VIPERProtocols.h"
8
+
9
+
10
+ @interface VIPERDataManager : NSObject <VIPERDataManagerInputProtocol>
11
+
12
+ // Properties
13
+ @property (nonatomic, weak) id <VIPERDataManagerOutputProtocol> interactor;
14
+
15
+ @end
@@ -0,0 +1,11 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import "VIPERDataManager.h"
7
+
8
+
9
+ @implementation VIPERDataManager
10
+
11
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // Created by AUTHOR.
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ #import <Foundation/Foundation.h>
7
+ #import "VIPERProtocols.h"
8
+
9
+
10
+ @interface VIPERInteractor : NSObject <VIPERInteractorInputProtocol, VIPERDataManagerOutputProtocol>
11
+
12
+ // Properties
13
+ @property (nonatomic, weak) id <VIPERInteractorOutputProtocol> presenter;
14
+ @property (nonatomic, strong) id <VIPERDataManagerInputProtocol> dataManager;
15
+
16
+ @end