vipergen-roche 0.2.5

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 (64) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +134 -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/Interactor/VIPERItem.swift +13 -0
  48. data/lib/templates/testable/swift/Presenter/VIPERPresenter.swift +15 -0
  49. data/lib/templates/testable/swift/Presenter/VIPERPresenterSpec.swift +22 -0
  50. data/lib/templates/testable/swift/Protocols/VIPERProtocols.swift +70 -0
  51. data/lib/templates/testable/swift/View/VIPERView.swift +12 -0
  52. data/lib/templates/testable/swift/View/VIPERViewSpec.swift +22 -0
  53. data/lib/templates/testable/swift/WireFrame/VIPERWireFrame.swift +29 -0
  54. data/lib/templates/testable/viperspec.yml +4 -0
  55. data/lib/vipergen.rb +6 -0
  56. data/lib/vipergen/dirutils.rb +17 -0
  57. data/lib/vipergen/filemanager.rb +51 -0
  58. data/lib/vipergen/generator.rb +66 -0
  59. data/lib/vipergen/templatemanager.rb +53 -0
  60. data/lib/vipergen/version.rb +4 -0
  61. data/lib/vipergen/viperthor.rb +21 -0
  62. data/spec/spec_helper.rb +4 -0
  63. data/spec/vipergen/vipergen_spec.rb +133 -0
  64. metadata +181 -0
@@ -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
+ #import "VIPERView.h"
9
+ #import "VIPERLocalDataManager.h"
10
+ #import "VIPERAPIDataManager.h"
11
+ #import "VIPERInteractor.h"
12
+ #import "VIPERPresenter.h"
13
+ #import "VIPERWireframe.h"
14
+ #import <UIKit/UIKit.h>
15
+
16
+ @interface VIPERWireFrame : NSObject <VIPERWireFrameProtocol>
17
+
18
+ @end
@@ -0,0 +1,32 @@
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
+ id <VIPERViewProtocol> view = [[VIPERView alloc] init];
14
+ id <VIPERPresenterProtocol, VIPERInteractorOutputProtocol> presenter = [VIPERPresenter new];
15
+ id <VIPERInteractorInputProtocol> interactor = [VIPERInteractor new];
16
+ id <VIPERAPIDataManagerInputProtocol> APIDataManager = [VIPERAPIDataManager new];
17
+ id <VIPERLocalDataManagerInputProtocol> localDataManager = [VIPERLocalDataManager new];
18
+ id <VIPERWireFrameProtocol> wireFrame= [VIPERWireFrame new];
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
+ //TOODO - New view controller presentation (present, push, pop, .. )
30
+ }
31
+
32
+ @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
+ 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
+ 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
+ class VIPERInteractor: VIPERInteractorInputProtocol
9
+ {
10
+ weak var presenter: VIPERInteractorOutputProtocol?
11
+ var APIDataManager: VIPERAPIDataManagerInputProtocol?
12
+ var localDatamanager: VIPERLocalDataManagerInputProtocol?
13
+
14
+ init() {}
15
+ }
@@ -0,0 +1,13 @@
1
+ //
2
+ // Created by AUTHOR
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ struct VIPERItem
9
+ {
10
+ /**
11
+ * Attributes here
12
+ */
13
+ }
@@ -0,0 +1,15 @@
1
+ //
2
+ // Created by AUTHOR
3
+ // Copyright (c) YEAR AUTHOR. All rights reserved.
4
+ //
5
+
6
+ import Foundation
7
+
8
+ 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,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
+ class func presentVIPERModule(fromView view: AnyObject)
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
+ class VIPERView: UIViewController, VIPERViewProtocol
10
+ {
11
+ var presenter: VIPERPresenterProtocol?
12
+ }
@@ -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