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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +134 -0
- data/bin/vipergen +9 -0
- data/lib/templates/default/objc/DataManager/API/VIPERAPIDataManager.h +12 -0
- data/lib/templates/default/objc/DataManager/API/VIPERAPIDataManager.m +10 -0
- data/lib/templates/default/objc/DataManager/Local/VIPERLocalDataManager.h +12 -0
- data/lib/templates/default/objc/DataManager/Local/VIPERLocalDataManager.m +10 -0
- data/lib/templates/default/objc/Interactor/VIPERInteractor.h +16 -0
- data/lib/templates/default/objc/Interactor/VIPERInteractor.m +10 -0
- data/lib/templates/default/objc/Interactor/VIPERItem.h +10 -0
- data/lib/templates/default/objc/Interactor/VIPERItem.m +10 -0
- data/lib/templates/default/objc/Presenter/VIPERPresenter.h +17 -0
- data/lib/templates/default/objc/Presenter/VIPERPresenter.m +11 -0
- data/lib/templates/default/objc/Protocols/VIPERProtocols.h +80 -0
- data/lib/templates/default/objc/View/VIPERView.h +13 -0
- data/lib/templates/default/objc/View/VIPERView.m +32 -0
- data/lib/templates/default/objc/WireFrame/VIPERWireFrame.h +18 -0
- data/lib/templates/default/objc/WireFrame/VIPERWireFrame.m +32 -0
- data/lib/templates/default/swift/DataManager/API/VIPERAPIDataManager.swift +11 -0
- data/lib/templates/default/swift/DataManager/Local/VIPERLocalDataManager.swift +11 -0
- data/lib/templates/default/swift/Interactor/VIPERInteractor.swift +15 -0
- data/lib/templates/default/swift/Interactor/VIPERItem.swift +13 -0
- data/lib/templates/default/swift/Presenter/VIPERPresenter.swift +15 -0
- data/lib/templates/default/swift/Protocols/VIPERProtocols.swift +70 -0
- data/lib/templates/default/swift/View/VIPERView.swift +12 -0
- data/lib/templates/default/swift/WireFrame/VIPERWireFrame.swift +29 -0
- data/lib/templates/default/viperspec.yml +4 -0
- data/lib/templates/testable/objc/DataManager/VIPERDataManager.h +15 -0
- data/lib/templates/testable/objc/DataManager/VIPERDataManager.m +11 -0
- data/lib/templates/testable/objc/Interactor/VIPERInteractor.h +16 -0
- data/lib/templates/testable/objc/Interactor/VIPERInteractor.m +10 -0
- data/lib/templates/testable/objc/Interactor/VIPERInteractorSpec.m +31 -0
- data/lib/templates/testable/objc/Presenter/VIPERPresenter.h +18 -0
- data/lib/templates/testable/objc/Presenter/VIPERPresenter.m +11 -0
- data/lib/templates/testable/objc/Presenter/VIPERPresenterSpec.m +31 -0
- data/lib/templates/testable/objc/Protocols/VIPERProtocols.h +64 -0
- data/lib/templates/testable/objc/ViewController/VIPERViewController.h +13 -0
- data/lib/templates/testable/objc/ViewController/VIPERViewController.m +32 -0
- data/lib/templates/testable/objc/ViewController/VIPERViewControllerSpec.m +31 -0
- data/lib/templates/testable/objc/WireFrame/VIPERWireFrame.h +19 -0
- data/lib/templates/testable/objc/WireFrame/VIPERWireFrame.m +31 -0
- data/lib/templates/testable/swift/DataManager/API/VIPERAPIDataManager.swift +11 -0
- data/lib/templates/testable/swift/DataManager/Local/VIPERLocalDataManager.swift +11 -0
- data/lib/templates/testable/swift/Interactor/VIPERInteractor.swift +15 -0
- data/lib/templates/testable/swift/Interactor/VIPERInteractorSpec.swift +22 -0
- data/lib/templates/testable/swift/Interactor/VIPERItem.swift +13 -0
- data/lib/templates/testable/swift/Presenter/VIPERPresenter.swift +15 -0
- data/lib/templates/testable/swift/Presenter/VIPERPresenterSpec.swift +22 -0
- data/lib/templates/testable/swift/Protocols/VIPERProtocols.swift +70 -0
- data/lib/templates/testable/swift/View/VIPERView.swift +12 -0
- data/lib/templates/testable/swift/View/VIPERViewSpec.swift +22 -0
- data/lib/templates/testable/swift/WireFrame/VIPERWireFrame.swift +29 -0
- data/lib/templates/testable/viperspec.yml +4 -0
- data/lib/vipergen.rb +6 -0
- data/lib/vipergen/dirutils.rb +17 -0
- data/lib/vipergen/filemanager.rb +51 -0
- data/lib/vipergen/generator.rb +66 -0
- data/lib/vipergen/templatemanager.rb +53 -0
- data/lib/vipergen/version.rb +4 -0
- data/lib/vipergen/viperthor.rb +21 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/vipergen/vipergen_spec.rb +133 -0
- 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,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,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,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,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,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,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,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
|