vipergen-afnan 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
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/MAU/objc/Application Logic/DataManager/API/VIPERAPIDataManager.h +15 -0
  6. data/lib/templates/MAU/objc/Application Logic/DataManager/API/VIPERAPIDataManager.m +13 -0
  7. data/lib/templates/MAU/objc/Application Logic/DataManager/Local/VIPERLocalDataManager.h +15 -0
  8. data/lib/templates/MAU/objc/Application Logic/DataManager/Local/VIPERLocalDataManager.m +13 -0
  9. data/lib/templates/MAU/objc/Application Logic/Interactor/VIPERInteractor.h +19 -0
  10. data/lib/templates/MAU/objc/Application Logic/Interactor/VIPERInteractor.m +14 -0
  11. data/lib/templates/MAU/objc/Application Logic/Interactor/VIPERItem.h +13 -0
  12. data/lib/templates/MAU/objc/Application Logic/Interactor/VIPERItem.m +13 -0
  13. data/lib/templates/MAU/objc/Module Interface/VIPERProtocols.h +83 -0
  14. data/lib/templates/MAU/objc/User Interface/Presenter/VIPERPresenter.h +20 -0
  15. data/lib/templates/MAU/objc/User Interface/Presenter/VIPERPresenter.m +14 -0
  16. data/lib/templates/MAU/objc/User Interface/View/VIPERView.h +16 -0
  17. data/lib/templates/MAU/objc/User Interface/View/VIPERView.m +35 -0
  18. data/lib/templates/MAU/objc/User Interface/WireFrame/VIPERWireFrame.h +21 -0
  19. data/lib/templates/MAU/objc/User Interface/WireFrame/VIPERWireFrame.m +35 -0
  20. data/lib/templates/MAU/swift/Application Logic/DataManager/API/VIPERAPIDataManager.swift +14 -0
  21. data/lib/templates/MAU/swift/Application Logic/DataManager/Local/VIPERLocalDataManager.swift +14 -0
  22. data/lib/templates/MAU/swift/Application Logic/Interactor/VIPERInteractor.swift +18 -0
  23. data/lib/templates/MAU/swift/Application Logic/Interactor/VIPERItem.swift +16 -0
  24. data/lib/templates/MAU/swift/Module Interface/VIPERProtocols.swift +73 -0
  25. data/lib/templates/MAU/swift/User Interface/Presenter/VIPERPresenter.swift +18 -0
  26. data/lib/templates/MAU/swift/User Interface/View/VIPERView.swift +15 -0
  27. data/lib/templates/MAU/swift/User Interface/WireFrame/VIPERWireFrame.swift +31 -0
  28. data/lib/templates/MAU/viperspec.yml +4 -0
  29. data/lib/templates/default/objc/DataManager/API/VIPERAPIDataManager.h +12 -0
  30. data/lib/templates/default/objc/DataManager/API/VIPERAPIDataManager.m +10 -0
  31. data/lib/templates/default/objc/DataManager/Local/VIPERLocalDataManager.h +12 -0
  32. data/lib/templates/default/objc/DataManager/Local/VIPERLocalDataManager.m +10 -0
  33. data/lib/templates/default/objc/Interactor/VIPERInteractor.h +16 -0
  34. data/lib/templates/default/objc/Interactor/VIPERInteractor.m +10 -0
  35. data/lib/templates/default/objc/Interactor/VIPERItem.h +10 -0
  36. data/lib/templates/default/objc/Interactor/VIPERItem.m +10 -0
  37. data/lib/templates/default/objc/Presenter/VIPERPresenter.h +17 -0
  38. data/lib/templates/default/objc/Presenter/VIPERPresenter.m +11 -0
  39. data/lib/templates/default/objc/Protocols/VIPERProtocols.h +80 -0
  40. data/lib/templates/default/objc/View/VIPERView.h +13 -0
  41. data/lib/templates/default/objc/View/VIPERView.m +32 -0
  42. data/lib/templates/default/objc/WireFrame/VIPERWireFrame.h +18 -0
  43. data/lib/templates/default/objc/WireFrame/VIPERWireFrame.m +32 -0
  44. data/lib/templates/default/swift/DataManager/API/VIPERAPIDataManager.swift +11 -0
  45. data/lib/templates/default/swift/DataManager/Local/VIPERLocalDataManager.swift +11 -0
  46. data/lib/templates/default/swift/Interactor/VIPERInteractor.swift +15 -0
  47. data/lib/templates/default/swift/Interactor/VIPERItem.swift +13 -0
  48. data/lib/templates/default/swift/Presenter/VIPERPresenter.swift +15 -0
  49. data/lib/templates/default/swift/Protocols/VIPERProtocols.swift +70 -0
  50. data/lib/templates/default/swift/View/VIPERView.swift +12 -0
  51. data/lib/templates/default/swift/WireFrame/VIPERWireFrame.swift +29 -0
  52. data/lib/templates/default/viperspec.yml +4 -0
  53. data/lib/templates/testable/objc/DataManager/VIPERDataManager.h +15 -0
  54. data/lib/templates/testable/objc/DataManager/VIPERDataManager.m +11 -0
  55. data/lib/templates/testable/objc/Interactor/VIPERInteractor.h +16 -0
  56. data/lib/templates/testable/objc/Interactor/VIPERInteractor.m +10 -0
  57. data/lib/templates/testable/objc/Interactor/VIPERInteractorSpec.m +31 -0
  58. data/lib/templates/testable/objc/Presenter/VIPERPresenter.h +18 -0
  59. data/lib/templates/testable/objc/Presenter/VIPERPresenter.m +11 -0
  60. data/lib/templates/testable/objc/Presenter/VIPERPresenterSpec.m +31 -0
  61. data/lib/templates/testable/objc/Protocols/VIPERProtocols.h +64 -0
  62. data/lib/templates/testable/objc/ViewController/VIPERViewController.h +13 -0
  63. data/lib/templates/testable/objc/ViewController/VIPERViewController.m +32 -0
  64. data/lib/templates/testable/objc/ViewController/VIPERViewControllerSpec.m +31 -0
  65. data/lib/templates/testable/objc/WireFrame/VIPERWireFrame.h +19 -0
  66. data/lib/templates/testable/objc/WireFrame/VIPERWireFrame.m +31 -0
  67. data/lib/templates/testable/swift/DataManager/API/VIPERAPIDataManager.swift +11 -0
  68. data/lib/templates/testable/swift/DataManager/Local/VIPERLocalDataManager.swift +11 -0
  69. data/lib/templates/testable/swift/Interactor/VIPERInteractor.swift +15 -0
  70. data/lib/templates/testable/swift/Interactor/VIPERInteractorSpec.swift +22 -0
  71. data/lib/templates/testable/swift/Interactor/VIPERItem.swift +13 -0
  72. data/lib/templates/testable/swift/Presenter/VIPERPresenter.swift +15 -0
  73. data/lib/templates/testable/swift/Presenter/VIPERPresenterSpec.swift +22 -0
  74. data/lib/templates/testable/swift/Protocols/VIPERProtocols.swift +70 -0
  75. data/lib/templates/testable/swift/View/VIPERView.swift +12 -0
  76. data/lib/templates/testable/swift/View/VIPERViewSpec.swift +22 -0
  77. data/lib/templates/testable/swift/WireFrame/VIPERWireFrame.swift +29 -0
  78. data/lib/templates/testable/viperspec.yml +4 -0
  79. data/lib/vipergen.rb +6 -0
  80. data/lib/vipergen/dirutils.rb +17 -0
  81. data/lib/vipergen/filemanager.rb +51 -0
  82. data/lib/vipergen/generator.rb +74 -0
  83. data/lib/vipergen/templatemanager.rb +53 -0
  84. data/lib/vipergen/version.rb +4 -0
  85. data/lib/vipergen/viperthor.rb +23 -0
  86. data/spec/spec_helper.rb +4 -0
  87. data/spec/vipergen/vipergen_spec.rb +133 -0
  88. metadata +206 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2b00196a7d3e615c449d19d50edee3091bd08676
4
+ data.tar.gz: 96b584282d700df052e0bcfe6f7312462bb1fccc
5
+ SHA512:
6
+ metadata.gz: 1a058058ade86443ad259fa759427f32b4a0dde86407c164c17ff50b3aaf85ce9986bb9216239e853f2692cfab762f31bd71a731b3a8e9b0dfaab75931a7a739
7
+ data.tar.gz: f85670ec8d9892e71f942c203a0893499da9b794ad3c125cd760e4034790bd84c69a18e31fb6e3b487569ec2436004d40da98d9959c3fab27281a771698874d3
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Redbooth
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,157 @@
1
+ Viper Module Generator
2
+ ======================
3
+ [![Code Climate](https://codeclimate.com/github/teambox/viper-module-generator/badges/gpa.svg)](https://codeclimate.com/github/teambox/viper-module-generator)
4
+ [![Build Status](https://travis-ci.org/teambox/viper-module-generator.svg?branch=master)](https://travis-ci.org/teambox/viper-module-generator)
5
+ [![Test Coverage](https://codeclimate.com/github/teambox/viper-module-generator/badges/coverage.svg)](https://codeclimate.com/github/teambox/viper-module-generator)
6
+ [![Dependency Status](https://gemnasium.com/teambox/viper-module-generator.svg)](https://gemnasium.com/teambox/viper-module-generator)
7
+
8
+
9
+ ![image](http://www.objc.io/images/issue-13/2014-06-07-viper-intro.jpg)
10
+
11
+ Gem to generate VIPER modules to use them in your Objective-C/Swift projects
12
+ The implementation scheme returned by this generator is hardly inspired in the example and post of Objc.io, http://www.objc.io/issue-13/viper.html .
13
+
14
+ - [Features](#features)
15
+ - [Changelog](#changelog-0.1)
16
+ - [Expected in version 0.2](#expected-in-version-0.2)
17
+ - [Viper files structure](#viper-files-structure)
18
+ - [How to install vipergen](#how-to-install-vipergen)
19
+ - [How to generate a VIPER module with a given name?](#how-to-generate-viper-module-with-a-given-name?)
20
+ - [Developer tips](#developer-tips)
21
+ - [Update the gem](#update-the-gem)
22
+ - [Add a new template](#add-a-new-template)
23
+ - [Resources](#resources)
24
+
25
+ ## Features
26
+ - Generates the module in Swift and Objective-C
27
+ - Ready to be installed as a gem https://rubygems.org/gems/VIPERGen
28
+
29
+ ### Changelog 0.1.6
30
+ - Added `templates` command to know which templates are available
31
+ - YAML file in each template with the information about the template (more scalable)
32
+
33
+ ### Changelog 0.1
34
+ - Added default template
35
+ - Fully components tested
36
+
37
+ ### Changelog 0.2.3
38
+ - VIPER Example using the Twitter API
39
+ - Default template implemented in Swift
40
+ -
41
+
42
+ ### Expected in version 0.3
43
+ - Integrate with XCode as a plugin (http://nshipster.com/xcode-plugins/)
44
+
45
+ ## Viper files structure
46
+ ```bash
47
+ .objc
48
+ +-- DataManager
49
+ | +-- VIPERDataManager.h
50
+ | +-- VIPERDataManager.m
51
+ +-- Interactor
52
+ | +-- VIPERInteractor.h
53
+ | +-- VIPERInteractor.m
54
+ | +-- VIPERInteractorSpec.m
55
+ +-- Presenter
56
+ | +-- VIPERPresenter.h
57
+ | +-- VIPERPresenter.m
58
+ | +-- VIPERPresenterSpec.m
59
+ +-- ViewController
60
+ | +-- VIPERViewController.h
61
+ | +-- VIPERViewController.m
62
+ | +-- VIPERViewControllerSpec.m
63
+ +-- WireFrame
64
+ | +-- VIPERWireFrame.h
65
+ | +-- VIPERWireFrame.m
66
+ +-- Protocols
67
+ | +-- VIPERProtocols.h
68
+ .swift
69
+ +-- DataManager
70
+ | +-- VIPERDataManager.swift
71
+ +-- Interactor
72
+ | +-- VIPERInteractor.swift
73
+ | +-- VIPERInteractorSpec.swift
74
+ +-- Presenter
75
+ | +-- VIPERPresenter.swift
76
+ | +-- VIPERPresenterSpec.swift
77
+ +-- View
78
+ | +-- VIPERView.swift
79
+ | +-- VIPERViewSpec.swift
80
+ +-- WireFrame
81
+ | +-- VIPERWireFrame.swift
82
+ +-- Protocols
83
+ | +-- VIPERProtocols.swift
84
+ ```
85
+ ## How to install vipergen ?
86
+ You can install it easily as using the gem. With ruby installed in your OSX execute:
87
+ ```bash
88
+ sudo gem install vipergen-roche
89
+ ```
90
+ If everything were right, you should have now the vipergem command available in your system console
91
+
92
+ ## How to generate a VIPER module with a given name?
93
+ You have just to execute the following command
94
+ ```bash
95
+ vipergen generate MyFirstViperModule --path=~/myproject/shared
96
+ ```
97
+ And then the files structure will be automatically created. Don't forget to add this folder to your project dragging it into the XCode/Appcode inspector
98
+
99
+ ## What options are available in generator?
100
+ You have just to execute the following command
101
+ ```bash
102
+ vipergen help generate
103
+ ```
104
+ And then you will see all options available
105
+
106
+ Sample:
107
+ ```bash
108
+ vipergen generate <Module_Name> --path=<Path> --language=swift --author='michal' --template=testable --swift-module <MY_Project>
109
+ ```
110
+
111
+ ## How can I try the demo project?
112
+
113
+ 1. Clone the repo `git clone https://github.com/pepibumur/viper-module-generator.git`
114
+ 2. Move into the repo folder and update the git submodules `git sumodule update --init`
115
+ 3. In the folder VIPERGenDemo install the pods `pod install`
116
+ 4. Open the project from the `VIPERGenDemo.xcworkspace` file
117
+ 5. Enjoy it!
118
+
119
+
120
+ ## Developer tips
121
+ ### Update the gem
122
+ When the gem is updated it has to be reported to the gem repository. I followed this tutorial http://amaras-tech.co.uk/article/43/Creating_executable_gems that basically says that once you have your gem ready execute:
123
+ ```bash
124
+ gem build vipergen.gemspec
125
+ gem install vipergen-0.1.gem
126
+ gem push vipergen-0.1.gem
127
+ ```
128
+ Then you'll be asked for your credentials in order to make the update in the repo (http://guides.rubygems.org/publishing/)
129
+
130
+ ### Add a new template
131
+ Are you interested in VIPER and you would like to contribute with this gem adding new templates? Feel free to do it. It's pretty easy. You've just to:
132
+ - Create a folder inside `templates` with the name of your template
133
+ - You'll have to create inside the templates in both languages, Swift and Objective-C (get inspired from existing templates)
134
+ - Use the word VIPER where you want the name to be replaced in.
135
+ - Remember to add the file viperspec.yml with the description of your template as below:
136
+ ```yaml
137
+ author: pepi
138
+ author_email: pepibumur@gmail.com
139
+ template_description: Default template with the simplest structure using VIPER
140
+ updated_at: 2014-08-24
141
+ ```
142
+ - Report it as a PR in this repo updating the gem version in Gemspec.
143
+
144
+ ### Available Templates
145
+ - default by pepimbur
146
+ - testable by wojtysim (includes Spec file templates for Interactor, Presenter and View)
147
+
148
+ ## Resources
149
+ - Redbooth presentation: https://speakerdeck.com/sergigracia/clean-architecture-viper
150
+ - Rspec documentation: http://rubydoc.info/gems/rspec-expectations/frames
151
+ - XCode Plugins: http://nshipster.com/xcode-plugins/
152
+ - XCodeProj gem (to modify project groups structure): https://github.com/CocoaPods/Xcodeproj
153
+ - Thor, powerful Ruby library for command line: http://whatisthor.com/
154
+ - Cocoa Design Patters: https://developer.apple.com/legacy/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html
155
+
156
+ ## Contact
157
+ If you have any doubt about the gem or even if you want to make any suggestion you can do it directly to my email address, pedro@redbooth.com . You can use the issues Github page too
data/bin/vipergen ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #require 'rubygems'
4
+ require 'vipergen/viperthor'
5
+
6
+ puts "------- VIPER GENERATOR---------\n"
7
+ puts ARGV
8
+ Vipergen::ViperThor.start(ARGV)
9
+ puts "--------------------------------\n"
@@ -0,0 +1,15 @@
1
+ //
2
+ // VIPERAPIDataManager.h
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "VIPERProtocols.h"
11
+
12
+
13
+ @interface VIPERAPIDataManager : NSObject <VIPERAPIDataManagerInputProtocol>
14
+
15
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // VIPERAPIDataManager.m
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import "VIPERAPIDataManager.h"
10
+
11
+ @implementation VIPERAPIDataManager
12
+
13
+ @end
@@ -0,0 +1,15 @@
1
+ //
2
+ // VIPERLocalDataManager.h
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "VIPERProtocols.h"
11
+
12
+
13
+ @interface VIPERLocalDataManager : NSObject <VIPERLocalDataManagerInputProtocol>
14
+
15
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // VIPERLocalDataManager.m
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import "VIPERLocalDataManager.h"
10
+
11
+ @implementation VIPERLocalDataManager
12
+
13
+ @end
@@ -0,0 +1,19 @@
1
+ //
2
+ // VIPERInteractor.h
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "VIPERProtocols.h"
11
+
12
+
13
+ @interface VIPERInteractor : NSObject <VIPERInteractorInputProtocol>
14
+
15
+ @property (nonatomic, weak) id <VIPERInteractorOutputProtocol> presenter;
16
+ @property (nonatomic, strong) id <VIPERAPIDataManagerInputProtocol> APIDataManager;
17
+ @property (nonatomic, strong) id <VIPERLocalDataManagerInputProtocol> localDataManager;
18
+
19
+ @end
@@ -0,0 +1,14 @@
1
+ //
2
+ // VIPERInteractor.m
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+
10
+ #import "VIPERInteractor.h"
11
+
12
+ @implementation VIPERInteractor
13
+
14
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // VIPERItem.h
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ @interface VIPERItem : NSObject
12
+
13
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // VIPERItem.m
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import "VIPERItem.h"
10
+
11
+ @implementation VIPERItem
12
+
13
+ @end
@@ -0,0 +1,83 @@
1
+ //
2
+ // VIPERProtocols.h
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import <UIKit/UIKit.h>
11
+
12
+ @protocol VIPERInteractorOutputProtocol;
13
+ @protocol VIPERInteractorInputProtocol;
14
+ @protocol VIPERViewProtocol;
15
+ @protocol VIPERPresenterProtocol;
16
+ @protocol VIPERLocalDataManagerInputProtocol;
17
+ @protocol VIPERAPIDataManagerInputProtocol;
18
+
19
+
20
+ @class VIPERWireFrame;
21
+
22
+ @protocol VIPERViewProtocol
23
+ @required
24
+ @property (nonatomic, strong) id <VIPERPresenterProtocol> presenter;
25
+ /**
26
+ * Add here your methods for communication PRESENTER -> VIEWCONTROLLER
27
+ */
28
+ @end
29
+
30
+ @protocol VIPERWireFrameProtocol
31
+ @required
32
+ + (void)presentVIPERModuleFrom:(id)fromView;
33
+ /**
34
+ * Add here your methods for communication PRESENTER -> WIREFRAME
35
+ */
36
+ @end
37
+
38
+ @protocol VIPERPresenterProtocol
39
+ @required
40
+ @property (nonatomic, weak) id <VIPERViewProtocol> view;
41
+ @property (nonatomic, strong) id <VIPERInteractorInputProtocol> interactor;
42
+ @property (nonatomic, strong) id <VIPERWireFrameProtocol> wireFrame;
43
+ /**
44
+ * Add here your methods for communication VIEWCONTROLLER -> PRESENTER
45
+ */
46
+ @end
47
+
48
+ @protocol VIPERInteractorOutputProtocol
49
+ /**
50
+ * Add here your methods for communication INTERACTOR -> PRESENTER
51
+ */
52
+ @end
53
+
54
+ @protocol VIPERInteractorInputProtocol
55
+ @required
56
+ @property (nonatomic, weak) id <VIPERInteractorOutputProtocol> presenter;
57
+ @property (nonatomic, strong) id <VIPERAPIDataManagerInputProtocol> APIDataManager;
58
+ @property (nonatomic, strong) id <VIPERLocalDataManagerInputProtocol> localDataManager;
59
+ /**
60
+ * Add here your methods for communication PRESENTER -> INTERACTOR
61
+ */
62
+ @end
63
+
64
+
65
+ @protocol VIPERDataManagerInputProtocol
66
+ /**
67
+ * Add here your methods for communication INTERACTOR -> DATAMANAGER
68
+ */
69
+ @end
70
+
71
+ @protocol VIPERAPIDataManagerInputProtocol <VIPERDataManagerInputProtocol>
72
+ /**
73
+ * Add here your methods for communication INTERACTOR -> APIDATAMANAGER
74
+ */
75
+ @end
76
+
77
+ @protocol VIPERLocalDataManagerInputProtocol <VIPERDataManagerInputProtocol>
78
+ /**
79
+ * Add here your methods for communication INTERACTOR -> LOCLDATAMANAGER
80
+ */
81
+ @end
82
+
83
+
@@ -0,0 +1,20 @@
1
+ //
2
+ // VIPERPresenter.h
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "VIPERProtocols.h"
11
+
12
+ @class VIPERWireFrame;
13
+
14
+ @interface VIPERPresenter : NSObject <VIPERPresenterProtocol, VIPERInteractorOutputProtocol>
15
+
16
+ @property (nonatomic, weak) id <VIPERViewProtocol> view;
17
+ @property (nonatomic, strong) id <VIPERInteractorInputProtocol> interactor;
18
+ @property (nonatomic, strong) id <VIPERWireFrameProtocol> wireFrame;
19
+
20
+ @end
@@ -0,0 +1,14 @@
1
+ //
2
+ // VIPERPresenter.m
3
+ // PROJECT
4
+ //
5
+ // Created by AUTHOR on DATE.
6
+ // Copyright © YEAR COMPANY. All rights reserved.
7
+ //
8
+
9
+ #import "VIPERPresenter.h"
10
+ #import "VIPERWireframe.h"
11
+
12
+ @implementation VIPERPresenter
13
+
14
+ @end