vsvipergen 0.1.8 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d21fccad17daf383cbcb39e27cac1967c7edfedf5585c3e266fdb7b25aa94026
4
- data.tar.gz: d4429b3de08dff01821512ed3cddcc8dd9b62abff69e0ef5238fc9b38a8dfd12
3
+ metadata.gz: b40cc2755fc187e28514b1a0e87512be9cd793342bdefde360256a6019b3bafd
4
+ data.tar.gz: b54acbe61bbde7e247056736c9f72b5d4e59343f89a4a15a6bf86392d165b1a6
5
5
  SHA512:
6
- metadata.gz: d8ac38bec80cf3d15614db39b37c32849a71c28a6c0dca3c99e519cb57acf3c2857e0dfb535987b6e43421a29c796f301c773fe64a192f22c1d04bef7d742363
7
- data.tar.gz: 07b796514ab61b67aa6a9a052f7d8ce963638c4f098d467e859199117c71a74715a980bf9e3d3be1d3350222c52004fe1f3133fcd235b6c2a14de5e5ed2129d2
6
+ metadata.gz: ffc6729aec5e42d95a0e78ec123e20378c5a14ca732d090fc67eff341e3112a2ef11427c2b9de230389721895d7ca3465d0109fac0398a33a934f1339167f247
7
+ data.tar.gz: 886dfa39b295aad6b6070ed42a776d77a10974d5a7815466cbb8a057e79ddfe14be3d6882b35fbe52b045a2fb43737427678a342a8f5a65ac073f298ce7fc25c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vsvipergen (0.1.4)
4
+ vsvipergen (0.1.9)
5
5
  colorize (~> 0.8.1)
6
6
  xcodeproj (~> 1.7.0)
7
7
 
@@ -33,4 +33,4 @@ DEPENDENCIES
33
33
  xcodeproj (~> 1.7.0)
34
34
 
35
35
  BUNDLED WITH
36
- 1.16.2
36
+ 1.17.2
data/bin/console CHANGED
@@ -11,139 +11,145 @@ require "vsvipergen_router"
11
11
  require "xcodeproj"
12
12
  require "colorize"
13
13
 
14
- #################################################
15
- ############ handle user input start ############
16
- projectName = ""
17
- lang = ""
18
- filePrefix = ""
19
- modelPrefix = ""
20
- now = Time.now.strftime("%Y/%m/%d")
21
- year = Time.now.strftime("%Y")
22
-
23
- # 프로그래밍 언어 입력 요구
24
- while true
25
- puts "input language [o:objc, a:android] : "
26
- lang = gets
27
-
28
- break if (lang.strip == "objc" || lang.strip == "o" || lang.strip == "android" || lang.strip == "a")
29
- end
30
-
31
- # objective-c 선택일 경우 프로젝트 파일 이름 입력 요구
32
- if lang.strip == "objc" || lang.strip == "o" then
33
- puts "input xcode project file name [ex:VLunch] :"
34
- while true
35
- projectName = gets
36
-
37
- break if (projectName.strip != "")
14
+ begin
15
+ #################################################
16
+ ############ handle user input start ############
17
+ projectName = ""
18
+ lang = ""
19
+ filePrefix = ""
20
+ modelPrefix = ""
21
+ now = Time.now.strftime("%Y/%m/%d")
22
+ year = Time.now.strftime("%Y")
23
+
24
+ # 프로그래밍 언어 입력 요구
25
+ while true
26
+ puts "input language [o:objc, a:android, s:swift] : "
27
+ lang = gets
28
+
29
+ break if (lang.strip == "objc" || lang.strip == "o" || lang.strip == "android" || lang.strip == "a" || lang.strip == "swift" || lang.strip == "s")
38
30
  end
39
- end
40
-
41
- # 파일 prefix 입력 요구
42
- puts "input file prefix [ex:type" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
43
- filePrefix = gets
44
-
45
- if filePrefix == "" then
46
- filePrefix = "Default"
47
- end
48
-
49
- # objective-c 선택일 경우 모델 prefix 입력 요구
50
- if lang.strip == "objc" || lang.strip == "o" then
51
- puts "input model prefix [ex:type" + " User".yellow + " for VS" + "User".yellow + "VO] : "
52
- modelPrefix = gets
53
-
54
- if modelPrefix == "" then
55
- modelPrefix = "Default"
31
+
32
+ # objective-c 선택일 경우 프로젝트 파일 이름 입력 요구
33
+ if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
34
+ puts "input xcode project file name [ex:VLunch] :"
35
+ while true
36
+ projectName = gets
37
+
38
+ break if (projectName.strip != "")
39
+ end
56
40
  end
57
- end
58
41
 
59
- ############# handle user input end #############
60
- #################################################
42
+ # 파일 prefix 입력 요구
43
+ puts "input file prefix [ex:type" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
44
+ filePrefix = gets
61
45
 
46
+ if filePrefix == "" then
47
+ filePrefix = "Default"
48
+ end
62
49
 
50
+ # objective-c 또는 swift 선택일 경우 모델 prefix 입력 요구
51
+ if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
52
+ puts "input model prefix [ex:type" + " User".yellow + " for VS" + "User".yellow + "VO] : "
53
+ modelPrefix = gets
54
+
55
+ if modelPrefix == "" then
56
+ modelPrefix = "Default"
57
+ end
58
+ end
63
59
 
60
+ ############# handle user input end #############
61
+ #################################################
64
62
 
65
- #################################################
66
- ############# create file generator #############
67
- fileGenerators = []
68
- generatedFilePaths = []
69
- subPathAndFilePathHashes = []
70
63
 
71
- generatorFactory = Vsvipergen::ViperGeneratorFactory.new
72
- generatorFactory.init(filePrefix, modelPrefix, now, year)
73
64
 
74
- if lang.strip == "objc" || lang.strip == "o" then
75
- fileGenerators = generatorFactory.createObjcGenerator
76
- else
77
- fileGenerators = generatorFactory.createAndroidGenerator
78
- end
79
- ############# create file generator #############
80
- #################################################
81
65
 
66
+ #################################################
67
+ ############# create file generator #############
68
+ fileGenerators = []
69
+ generatedFilePaths = []
70
+ subPathAndFilePathHashes = []
71
+
72
+ generatorFactory = Vsvipergen::ViperGeneratorFactory.new
73
+ generatorFactory.init(filePrefix, modelPrefix, now, year)
74
+
75
+ if lang.strip == "objc" || lang.strip == "o" then
76
+ fileGenerators = generatorFactory.createObjcGenerator
77
+ elsif lang.strip == "swift" || lang.strip == "s" then
78
+ fileGenerators = generatorFactory.createSwiftGenerator
79
+ else
80
+ fileGenerators = generatorFactory.createAndroidGenerator
81
+ end
82
+ ############# create file generator #############
83
+ #################################################
82
84
 
83
85
 
84
- #################################################
85
- ################## make file ###################
86
- for generator in fileGenerators
87
- files = generator.makeFiles
88
86
 
89
- subPathAndFilePathHashes.push(generator.subPathAndFilePathHash)
87
+ #################################################
88
+ ################## make file ###################
89
+ for generator in fileGenerators
90
+ files = generator.makeFiles
90
91
 
91
- for file in files
92
- generatedFilePaths.push(file)
92
+ for file in files
93
+ generatedFilePaths.push(file)
94
+ end
93
95
  end
94
- end
95
- ################## make file ###################
96
- #################################################
97
-
98
- if lang.strip == "objc" || lang.strip == "o" then
96
+ ################## make file ###################
99
97
  #################################################
100
- ############# add file to project ##############
101
- # Open the existing Xcode project
102
- xcodeProjectFile = projectName.strip + ".xcodeproj".strip
103
- project = Xcodeproj::Project.open(xcodeProjectFile.strip)
104
- targets = project.targets
105
- mainTarget = project.targets.first
106
- newGroup = project.new_group(filePrefix.strip.downcase)
107
-
108
- # Add files, groups to the project in the main group
109
- for filePath in generatedFilePaths
110
-
111
- # extract child group name from file path
112
- pathArr = filePath.split("/")
113
- childGroupName = pathArr[pathArr.count - 2]
114
- childGroup = nil
115
-
116
- if childGroupName != "" then
117
- # check same child group added to newGroup
118
- addChildGroupAlready = false
119
- newGroup.groups.each { |group|
120
- if group.name == childGroupName then
121
- addChildGroupAlready = true
122
- childGroup = group
98
+
99
+ if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
100
+ #################################################
101
+ ############# add file to project ##############
102
+ # Open the existing Xcode project
103
+ xcodeProjectFile = projectName.strip + ".xcodeproj".strip
104
+ project = Xcodeproj::Project.open(xcodeProjectFile.strip)
105
+ targets = project.targets
106
+ mainTarget = project.targets.first
107
+ newGroup = project.new_group(filePrefix.strip.downcase)
108
+
109
+ # Add files, groups to the project in the main group
110
+ for filePath in generatedFilePaths
111
+ puts "filePath : #{filePath}"
112
+
113
+ # extract child group name from file path
114
+ pathArr = filePath.split("/")
115
+ childGroupName = pathArr[pathArr.count - 2]
116
+ puts "childGroupName : #{childGroupName}"
117
+ childGroup = nil
118
+
119
+ if childGroupName != "" then
120
+ # check same child group added to newGroup
121
+ addChildGroupAlready = false
122
+ newGroup.groups.each { |group|
123
+ if group.name == childGroupName then
124
+ addChildGroupAlready = true
125
+ childGroup = group
126
+ end
127
+ }
128
+
129
+ # add child group to newGroup
130
+ if addChildGroupAlready == false then
131
+ puts "add child group : #{childGroupName}"
132
+ childGroup = newGroup.new_group(childGroupName)
123
133
  end
124
- }
125
134
 
126
- # add child group to newGroup
127
- if addChildGroupAlready == false then
128
- puts "add child group : #{childGroupName}"
129
- childGroup = newGroup.new_group(childGroupName)
135
+ # Add file to child group
136
+ file = childGroup.new_file(filePath.strip)
137
+ else
138
+ puts "could not extract child group name from file path, add file to parent group(#{newGroup.name})".red
139
+ # Add file to new group
140
+ file = newGroup.new_file(filePath.strip)
130
141
  end
131
142
 
132
- # Add file to child group
133
- file = childGroup.new_file(filePath.strip)
134
- else
135
- puts "could not extract child group name from file path, add file to parent group(#{newGroup.name})".red
136
- # Add file to new group
137
- file = newGroup.new_file(filePath.strip)
143
+ # Add the file to the main target
144
+ mainTarget.add_file_references([file])
138
145
  end
139
146
 
140
- # Add the file to the main target
141
- mainTarget.add_file_references([file])
147
+ # Save the project file
148
+ project.save(xcodeProjectFile)
149
+ puts "all files added to xcode project."
150
+ ############# add file to project ##############
151
+ #################################################
142
152
  end
143
-
144
- # Save the project file
145
- project.save(xcodeProjectFile)
146
- puts "all files added to xcode project."
147
- ############# add file to project ##############
148
- #################################################
149
- end
153
+ rescue StandardError => msg
154
+ puts msg
155
+ end
data/bin/setup CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env bash
1
+ #!/usr/bin/env zsh
2
2
  set -euo pipefail
3
3
  IFS=$'\n\t'
4
4
  set -vx
data/exe/vsvipergen CHANGED
@@ -10,136 +10,142 @@ require "vsvipergen_router"
10
10
  require "xcodeproj"
11
11
  require "colorize"
12
12
 
13
- #################################################
14
- ############ handle user input start ############
15
- projectName = ""
16
- lang = ""
17
- filePrefix = ""
18
- modelPrefix = ""
19
- now = Time.now.strftime("%Y/%m/%d")
20
- year = Time.now.strftime("%Y")
21
-
22
- # 프로그래밍 언어 입력 요구
23
- while true
24
- puts "input language [o:objc, a:android] : "
25
- lang = gets
26
-
27
- break if (lang.strip == "objc" || lang.strip == "o" || lang.strip == "android" || lang.strip == "a")
28
- end
29
-
30
- # objective-c 선택일 경우 프로젝트 파일 이름 입력 요구
31
- if lang.strip == "objc" || lang.strip == "o" then
32
- puts "input xcode project file name [ex:VLunch] :"
33
- while true
34
- projectName = gets
35
-
36
- break if (projectName.strip != "")
13
+ begin
14
+ #################################################
15
+ ############ handle user input start ############
16
+ projectName = ""
17
+ lang = ""
18
+ filePrefix = ""
19
+ modelPrefix = ""
20
+ now = Time.now.strftime("%Y/%m/%d")
21
+ year = Time.now.strftime("%Y")
22
+
23
+ # 프로그래밍 언어 입력 요구
24
+ while true
25
+ puts "input language [o:objc, a:android, s:swift] : "
26
+ lang = gets
27
+
28
+ break if (lang.strip == "objc" || lang.strip == "o" || lang.strip == "android" || lang.strip == "a" || lang.strip == "swift" || lang.strip == "s")
37
29
  end
38
- end
39
-
40
- # 파일 prefix 입력 요구
41
- puts "input file prefix [ex:type" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
42
- filePrefix = gets
43
-
44
- if filePrefix == "" then
45
- filePrefix = "Default"
46
- end
47
-
48
- # objective-c 선택일 경우 모델 prefix 입력 요구
49
- if lang.strip == "objc" || lang.strip == "o" then
50
- puts "input model prefix [ex:type" + " User".yellow + " for VS" + "User".yellow + "VO] : "
51
- modelPrefix = gets
52
-
53
- if modelPrefix == "" then
54
- modelPrefix = "Default"
30
+
31
+ # objective-c 선택일 경우 프로젝트 파일 이름 입력 요구
32
+ if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
33
+ puts "input xcode project file name [ex:VLunch] :"
34
+ while true
35
+ projectName = gets
36
+
37
+ break if (projectName.strip != "")
38
+ end
55
39
  end
56
- end
57
40
 
58
- ############# handle user input end #############
59
- #################################################
41
+ # 파일 prefix 입력 요구
42
+ puts "input file prefix [ex:type" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
43
+ filePrefix = gets
60
44
 
45
+ if filePrefix == "" then
46
+ filePrefix = "Default"
47
+ end
61
48
 
49
+ # objective-c 또는 swift 선택일 경우 모델 prefix 입력 요구
50
+ if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
51
+ puts "input model prefix [ex:type" + " User".yellow + " for VS" + "User".yellow + "VO] : "
52
+ modelPrefix = gets
53
+
54
+ if modelPrefix == "" then
55
+ modelPrefix = "Default"
56
+ end
57
+ end
62
58
 
59
+ ############# handle user input end #############
60
+ #################################################
63
61
 
64
- #################################################
65
- ############# create file generator #############
66
- fileGenerators = []
67
- generatedFilePaths = []
68
62
 
69
- generatorFactory = Vsvipergen::ViperGeneratorFactory.new
70
- generatorFactory.init(filePrefix, modelPrefix, now, year)
71
63
 
72
- if lang.strip == "objc" || lang.strip == "o" then
73
- fileGenerators = generatorFactory.createObjcGenerator
74
- else
75
- fileGenerators = generatorFactory.createAndroidGenerator
76
- end
77
- ############# create file generator #############
78
- #################################################
79
64
 
65
+ #################################################
66
+ ############# create file generator #############
67
+ fileGenerators = []
68
+ generatedFilePaths = []
69
+
70
+ generatorFactory = Vsvipergen::ViperGeneratorFactory.new
71
+ generatorFactory.init(filePrefix, modelPrefix, now, year)
72
+
73
+ if lang.strip == "objc" || lang.strip == "o" then
74
+ fileGenerators = generatorFactory.createObjcGenerator
75
+ elsif lang.strip == "swift" || lang.strip == "s" then
76
+ fileGenerators = generatorFactory.createSwiftGenerator
77
+ else
78
+ fileGenerators = generatorFactory.createAndroidGenerator
79
+ end
80
+ ############# create file generator #############
81
+ #################################################
80
82
 
81
83
 
82
- #################################################
83
- ################## make file ###################
84
- for generator in fileGenerators
85
- files = generator.makeFiles
86
84
 
87
- for file in files
88
- generatedFilePaths.push(file)
89
- end
90
- end
91
- ################## make file ###################
92
- #################################################
85
+ #################################################
86
+ ################## make file ###################
87
+ for generator in fileGenerators
88
+ files = generator.makeFiles
93
89
 
94
- if lang.strip == "objc" || lang.strip == "o" then
90
+ for file in files
91
+ generatedFilePaths.push(file)
92
+ end
93
+ end
94
+ ################## make file ###################
95
95
  #################################################
96
- ############# add file to project ##############
97
- # Open the existing Xcode project
98
- xcodeProjectFile = projectName.strip + ".xcodeproj".strip
99
- project = Xcodeproj::Project.open(xcodeProjectFile.strip)
100
- targets = project.targets
101
- mainTarget = project.targets.first
102
- newGroup = project.new_group(filePrefix.strip.downcase)
103
-
104
- # Add files, groups to the project in the main group
105
- for filePath in generatedFilePaths
106
-
107
- # extract child group name from file path
108
- pathArr = filePath.split("/")
109
- childGroupName = pathArr[pathArr.count - 2]
110
- childGroup = nil
111
-
112
- if childGroupName != "" then
113
- # check same child group added to newGroup
114
- addChildGroupAlready = false
115
- newGroup.groups.each { |group|
116
- if group.name == childGroupName then
117
- addChildGroupAlready = true
118
- childGroup = group
96
+
97
+ if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
98
+ #################################################
99
+ ############# add file to project ##############
100
+ # Open the existing Xcode project
101
+ xcodeProjectFile = projectName.strip + ".xcodeproj".strip
102
+ project = Xcodeproj::Project.open(xcodeProjectFile.strip)
103
+ targets = project.targets
104
+ mainTarget = project.targets.first
105
+ newGroup = project.new_group(filePrefix.strip.downcase)
106
+
107
+ # Add files, groups to the project in the main group
108
+ for filePath in generatedFilePaths
109
+
110
+ # extract child group name from file path
111
+ pathArr = filePath.split("/")
112
+ childGroupName = pathArr[pathArr.count - 2]
113
+ childGroup = nil
114
+
115
+ if childGroupName != "" then
116
+ # check same child group added to newGroup
117
+ addChildGroupAlready = false
118
+ newGroup.groups.each { |group|
119
+ if group.name == childGroupName then
120
+ addChildGroupAlready = true
121
+ childGroup = group
122
+ end
123
+ }
124
+
125
+ # add child group to newGroup
126
+ if addChildGroupAlready == false then
127
+ puts "add child group : #{childGroupName}"
128
+ childGroup = newGroup.new_group(childGroupName)
119
129
  end
120
- }
121
130
 
122
- # add child group to newGroup
123
- if addChildGroupAlready == false then
124
- puts "add child group : #{childGroupName}"
125
- childGroup = newGroup.new_group(childGroupName)
131
+ # Add file to child group
132
+ file = childGroup.new_file(filePath.strip)
133
+ else
134
+ puts "could not extract child group name from file path, add file to parent group(#{newGroup.name})".red
135
+ # Add file to new group
136
+ file = newGroup.new_file(filePath.strip)
126
137
  end
127
138
 
128
- # Add file to child group
129
- file = childGroup.new_file(filePath.strip)
130
- else
131
- puts "could not extract child group name from file path, add file to parent group(#{newGroup.name})".red
132
- # Add file to new group
133
- file = newGroup.new_file(filePath.strip)
139
+ # Add the file to the main target
140
+ mainTarget.add_file_references([file])
134
141
  end
135
142
 
136
- # Add the file to the main target
137
- mainTarget.add_file_references([file])
143
+ # Save the project file
144
+ project.save(xcodeProjectFile)
145
+ puts "all files added to xcode project."
146
+ ############# add file to project ##############
147
+ #################################################
138
148
  end
139
-
140
- # Save the project file
141
- project.save(xcodeProjectFile)
142
- puts "all files added to xcode project."
143
- ############# add file to project ##############
144
- #################################################
145
- end
149
+ rescue StandardError => msg
150
+ puts msg
151
+ end
@@ -0,0 +1,36 @@
1
+ //
2
+ // VS<$filePrefix$>Contracts.swift
3
+ // VLunch
4
+ //
5
+ // Created by Vendys on <$now$>..
6
+ // Copyright © <$year$>년 Vendys. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+ import UIKit
11
+
12
+ // presenter 클래스가 구현해야 할 프로토콜 : view 클래스가 호출
13
+ protocol I<$prefix$>PresenterForView: class {
14
+
15
+ }
16
+
17
+ // view 클래스가 구현해야 할 프로토콜 : presenter 클래스가 호출
18
+ protocol I<$prefix$>ViewForPresenter: class {
19
+
20
+ }
21
+
22
+ // interactor 클래스가 구현해야 할 프로토콜 : presenter 클래스가 호출
23
+ protocol I<$prefix$>InteractorForPresenter: class {
24
+
25
+ }
26
+
27
+ // presenter 클래스가 구현해야 할 프로토콜 : interactor 클래스가 호출
28
+ protocol I<$prefix$>PresenterForInteractor: class {
29
+
30
+ }
31
+
32
+ // router 클래스가 구현해야 할 프로토콜 : 외부 viper 모듈에서 호출
33
+ protocol I<$prefix$>Router: class {
34
+ static func create<$prefix$>Module() -> UIViewController?
35
+ func moveToBack(viewController: UIViewController, completionBlock:(() -> Void)?)
36
+ }
@@ -9,7 +9,7 @@
9
9
  #import <Foundation/Foundation.h>
10
10
  #import "VS<$prefix$>Contracts.h"
11
11
 
12
- @interface VS<$prefix$>Interactor : NSObject<I<$prefix$>InteractorForPresenter>
13
- @property (nonatomic, weak) id<I<$prefix$>PresenterForInteractor> presenter;
12
+ @interface VS<$prefix$>Interactor : NSObject <I<$prefix$>InteractorForPresenter>
13
+ @property (nonatomic, weak) id <I<$prefix$>PresenterForInteractor> presenter;
14
14
  #pragma mark - I<$prefix$>InteractorForPresenter
15
15
  @end
@@ -0,0 +1,22 @@
1
+ //
2
+ // VS<$modelPrefix$>VO.swift
3
+ // VLunch
4
+ //
5
+ // Created by vendys on <$now$>..
6
+ // Copyright © <$year$>년 Vendys. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ class VS<$prefix$>Interactor {
12
+ weak var presenter: I<$prefix$>PresenterForInteractor?
13
+ var vo: VS<$modelPrefix$>VO
14
+
15
+ init(vo: VS<$modelPrefix$>VO) {
16
+ self.vo = vo
17
+ }
18
+ }
19
+
20
+ extension VS<$prefix$>Interactor: I<$prefix$>InteractorForPresenter {
21
+
22
+ }
@@ -0,0 +1,17 @@
1
+ //
2
+ // VS<$modelPrefix$>VO.swift
3
+ // VLunch
4
+ //
5
+ // Created by vendys on <$now$>..
6
+ // Copyright © <$year$>년 Vendys. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ class VS<$modelPrefix$>VO {
12
+ var <$properties$>
13
+
14
+ init(<$properties$>) {
15
+ self.<$properties$>
16
+ }
17
+ }
@@ -10,9 +10,9 @@
10
10
  #import "VS<$prefix$>Contracts.h"
11
11
 
12
12
  @interface VS<$prefix$>Presenter : NSObject <I<$prefix$>PresenterForView, I<$prefix$>PresenterForInteractor>
13
- @property (nonatomic, weak) id<I<$prefix$>ViewForPresenter> view;
14
- @property (nonatomic, strong) id<I<$prefix$>InteractorForPresenter> interactor;
15
- @property (nonatomic, strong) id<I<$prefix$>Router> router;
13
+ @property (nonatomic, weak) id <I<$prefix$>ViewForPresenter> view;
14
+ @property (nonatomic, strong) id <I<$prefix$>InteractorForPresenter> interactor;
15
+ @property (nonatomic, strong) id <I<$prefix$>Router> router;
16
16
  #pragma mark - I<$prefix$>PresenterForView
17
17
  #pragma mark - I<$prefix$>PresenterForInteractor
18
18
  @end
@@ -0,0 +1,23 @@
1
+ //
2
+ // VS<$modelPrefix$>VO.swift
3
+ // VLunch
4
+ //
5
+ // Created by vendys on <$now$>..
6
+ // Copyright © <$year$>년 Vendys. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ class VS<$prefix$>Presenter {
12
+ weak var view: I<$prefix$>ViewForPresenter?
13
+ var interactor: I<$prefix$>InteractorForPresenter!
14
+ var router: I<$prefix$>Router!
15
+ }
16
+
17
+ extension VS<$prefix$>Presenter: I<$prefix$>PresenterForView {
18
+
19
+ }
20
+
21
+ extension VS<$prefix$>Presenter: I<$prefix$>PresenterForInteractor {
22
+
23
+ }
@@ -21,7 +21,7 @@
21
21
  #pragma mark - I<$prefix$>Router
22
22
  + (UIViewController *)create<$prefix$>Module {
23
23
  // get storyboard with name
24
- UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"VS<$prefix$>ViewController" bundle:nil];
24
+ UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"VS<$prefix$>" bundle:nil];
25
25
 
26
26
  // create specific module
27
27
  VS<$prefix$>ViewController * view = [storyboard instantiateViewControllerWithIdentifier:@"VS<$prefix$>ViewController"];
@@ -0,0 +1,20 @@
1
+ //
2
+ // VS<$modelPrefix$>VO.swift
3
+ // VLunch
4
+ //
5
+ // Created by vendys on <$now$>..
6
+ // Copyright © <$year$>년 Vendys. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+ import UIKit
11
+
12
+ class VS<$prefix$>Router: I<$prefix$>Router {
13
+ static func create<$prefix$>Module() -> UIViewController? {
14
+ <#fill your code...#>
15
+ }
16
+
17
+ func moveToBack(viewController: UIViewController, completionBlock:(() -> Void)?) {
18
+ <#fill your code...#>
19
+ }
20
+ }
@@ -10,6 +10,6 @@
10
10
  #import "VS<$prefix$>Contracts.h"
11
11
 
12
12
  @interface VS<$prefix$>ViewController : UIViewController <I<$prefix$>ViewForPresenter>
13
- @property (nonatomic, strong) id<I<$prefix$>PresenterForView> presenter;
13
+ @property (nonatomic, strong) id <I<$prefix$>PresenterForView> presenter;
14
14
  #pragma mark - I<$prefix$>ViewForPresenter
15
15
  @end
@@ -0,0 +1,18 @@
1
+ //
2
+ // VS<$modelPrefix$>VO.swift
3
+ // VLunch
4
+ //
5
+ // Created by vendys on <$now$>..
6
+ // Copyright © <$year$>년 Vendys. All rights reserved.
7
+ //
8
+
9
+ import UIKit
10
+
11
+ class VS<$prefix$>ViewController : UIViewController {
12
+ var presenter: I<$prefix$>PresenterForView!
13
+
14
+ }
15
+
16
+ extension VS<$prefix$>ViewController: I<$prefix$>ViewForPresenter {
17
+
18
+ }
@@ -1,3 +1,3 @@
1
1
  module Vsvipergen
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
data/lib/vsvipergen.rb CHANGED
@@ -15,7 +15,7 @@ module Vsvipergen
15
15
  @now = now
16
16
  @year = year
17
17
  @generatedFilePaths = []
18
- Dir.mkdir(currPath) unless File.exists?(currPath)
18
+ Dir.mkdir(currPath) unless File.exist?(currPath)
19
19
  end
20
20
 
21
21
  def makeFiles
@@ -92,6 +92,40 @@ module Vsvipergen
92
92
  return fileGenerators
93
93
  end
94
94
 
95
+ def createSwiftGenerator
96
+ # generating model files
97
+ swiftModelFileGenerator = Vsvipergen::ViperSwiftModelFileGenerator.new
98
+ swiftModelFileGenerator.init(filePrefix, now, year, modelPrefix)
99
+ fileGenerators.push(swiftModelFileGenerator)
100
+
101
+ # generating contracts file
102
+ swiftContractFileGenerator = Vsvipergen::ViperSwiftContractsFileGenerator.new
103
+ swiftContractFileGenerator.init(filePrefix, now, year, modelPrefix)
104
+ fileGenerators.push(swiftContractFileGenerator)
105
+
106
+ # generating interactor file
107
+ swiftInteractorFileGenerator = Vsvipergen::ViperSwiftInteractorFileGenerator.new
108
+ swiftInteractorFileGenerator.init(filePrefix, now, year, modelPrefix)
109
+ fileGenerators.push(swiftInteractorFileGenerator)
110
+
111
+ # generating presenter file
112
+ swiftPresenterFileGenerator = Vsvipergen::ViperSwiftPresenterFileGenerator.new
113
+ swiftPresenterFileGenerator.init(filePrefix, now, year, modelPrefix)
114
+ fileGenerators.push(swiftPresenterFileGenerator)
115
+
116
+ # generating view file
117
+ swiftViewControllerFileGenerator = Vsvipergen::ViperSwiftViewControllerFileGenerator.new
118
+ swiftViewControllerFileGenerator.init(filePrefix, now, year, modelPrefix)
119
+ fileGenerators.push(swiftViewControllerFileGenerator)
120
+
121
+ # generating router file
122
+ swiftViewRouterFileGenerator = Vsvipergen::ViperSwiftRouterFileGenerator.new
123
+ swiftViewRouterFileGenerator.init(filePrefix, now, year, modelPrefix)
124
+ fileGenerators.push(swiftViewRouterFileGenerator)
125
+
126
+ return fileGenerators
127
+ end
128
+
95
129
  def createAndroidGenerator
96
130
  # generating model files
97
131
  # 모델 생성은 하지 않는 최성식 팀장님의 요구 사항 적용
@@ -21,7 +21,7 @@ module Vsvipergen
21
21
 
22
22
  def makeHeaderFile
23
23
  subPath = currPath + "/contracts"
24
- Dir.mkdir(subPath) unless File.exists?(subPath)
24
+ Dir.mkdir(subPath) unless File.exist?(subPath)
25
25
 
26
26
  newHeaderFilePath = subPath + "/VS#{prefix.strip}Contracts.h"
27
27
  generatedFilePaths.push(newHeaderFilePath)
@@ -38,6 +38,32 @@ module Vsvipergen
38
38
  end
39
39
  end
40
40
 
41
+ class ViperSwiftContractsFileGenerator < ViperObjcContractsFileGenerator
42
+ def makeFiles
43
+ makeSwiftFile
44
+
45
+ return generatedFilePaths
46
+ end
47
+
48
+ def makeSwiftFile
49
+ subPath = currPath + "/contracts"
50
+ Dir.mkdir(subPath) unless File.exist?(subPath)
51
+
52
+ newSwiftFilePath = subPath + "/VS#{prefix.strip}Contracts.swift"
53
+ generatedFilePaths.push(newSwiftFilePath)
54
+
55
+ templateSwiftFilePath = File.expand_path '../lib/templates/VS<$$>Contracts.swift', File.dirname(__FILE__)
56
+
57
+ templateSwiftFileContents = ViperFileReader.new.readFile(templateSwiftFilePath)
58
+ templateSwiftFileContents.gsub! "<$modelPrefix$>", modelPrefix.strip
59
+ templateSwiftFileContents.gsub! "<$now$>", now.strip
60
+ templateSwiftFileContents.gsub! "<$year$>", year.strip
61
+ templateSwiftFileContents.gsub! "<$prefix$>", prefix.strip
62
+
63
+ ViperFileWriter.new.writeFile(newSwiftFilePath, templateSwiftFileContents)
64
+ end
65
+ end
66
+
41
67
  class ViperAndroidContractsFileGenerator < ViperObjcContractsFileGenerator
42
68
  def makeFiles
43
69
  makeJavaFile
@@ -21,7 +21,7 @@ module Vsvipergen
21
21
 
22
22
  def makeHeaderFile
23
23
  subPath = currPath + "/interactor"
24
- Dir.mkdir(subPath) unless File.exists?(subPath)
24
+ Dir.mkdir(subPath) unless File.exist?(subPath)
25
25
 
26
26
  newHeaderFilePath = subPath + "/VS#{prefix.strip}Interactor.h"
27
27
  generatedFilePaths.push(newHeaderFilePath)
@@ -39,7 +39,7 @@ module Vsvipergen
39
39
 
40
40
  def makeImplementFile
41
41
  subPath = currPath + "/interactor"
42
- Dir.mkdir(subPath) unless File.exists?(subPath)
42
+ Dir.mkdir(subPath) unless File.exist?(subPath)
43
43
 
44
44
  newImplementFilePath = subPath + "/VS#{prefix.strip}Interactor.m"
45
45
  generatedFilePaths.push(newImplementFilePath)
@@ -55,6 +55,32 @@ module Vsvipergen
55
55
  ViperFileWriter.new.writeFile(newImplementFilePath, templateImplementFileContents)
56
56
  end
57
57
  end
58
+
59
+ class ViperSwiftInteractorFileGenerator < ViperObjcInteractorFileGenerator
60
+ def makeFiles
61
+ makeSwiftFile
62
+
63
+ return generatedFilePaths
64
+ end
65
+
66
+ def makeSwiftFile
67
+ subPath = currPath + "/interactor"
68
+ Dir.mkdir(subPath) unless File.exist?(subPath)
69
+
70
+ newSwiftFilePath = subPath + "/VS#{prefix.strip}Interactor.swift"
71
+ generatedFilePaths.push(newSwiftFilePath)
72
+
73
+ templateSwiftFilePath = File.expand_path '../lib/templates/interactor/VS<$$>Interactor.swift', File.dirname(__FILE__)
74
+
75
+ templateSwiftFileContents = ViperFileReader.new.readFile(templateSwiftFilePath)
76
+ templateSwiftFileContents.gsub! "<$modelPrefix$>", modelPrefix.strip
77
+ templateSwiftFileContents.gsub! "<$now$>", now.strip
78
+ templateSwiftFileContents.gsub! "<$year$>", year.strip
79
+ templateSwiftFileContents.gsub! "<$prefix$>", prefix.strip
80
+
81
+ ViperFileWriter.new.writeFile(newSwiftFilePath, templateSwiftFileContents)
82
+ end
83
+ end
58
84
 
59
85
  class ViperAndroidInteractorFileGenerator < ViperObjcInteractorFileGenerator
60
86
  def makeFiles
@@ -21,7 +21,7 @@ module Vsvipergen
21
21
 
22
22
  def makeHeaderFile
23
23
  subPath = currPath + "/entity"
24
- Dir.mkdir(subPath) unless File.exists?(subPath)
24
+ Dir.mkdir(subPath) unless File.exist?(subPath)
25
25
 
26
26
  newHeaderFilePath = subPath + "/VS#{modelPrefix.strip}VO.h"
27
27
  generatedFilePaths.push(newHeaderFilePath)
@@ -39,7 +39,7 @@ module Vsvipergen
39
39
 
40
40
  def makeImplementFile
41
41
  subPath = currPath + "/entity"
42
- Dir.mkdir(subPath) unless File.exists?(subPath)
42
+ Dir.mkdir(subPath) unless File.exist?(subPath)
43
43
 
44
44
  newImplementFilePath = subPath + "/VS#{modelPrefix.strip}VO.m"
45
45
  generatedFilePaths.push(newImplementFilePath)
@@ -56,6 +56,32 @@ module Vsvipergen
56
56
  end
57
57
  end
58
58
 
59
+ class ViperSwiftModelFileGenerator < ViperObjcModelFileGenerator
60
+ def makeFiles
61
+ makeSwiftFile
62
+
63
+ return generatedFilePaths
64
+ end
65
+
66
+ def makeSwiftFile
67
+ subPath = currPath + "/entity"
68
+ Dir.mkdir(subPath) unless File.exist?(subPath)
69
+
70
+ newSwiftFilePath = subPath + "/VS#{modelPrefix.strip}VO.swift"
71
+ generatedFilePaths.push(newSwiftFilePath)
72
+
73
+ templateSwiftFilePath = File.expand_path '../lib/templates/model/VS<$$>VO.swift', File.dirname(__FILE__)
74
+
75
+ templateSwiftFileContents = ViperFileReader.new.readFile(templateSwiftFilePath)
76
+ templateSwiftFileContents.gsub! "<$modelPrefix$>", modelPrefix.strip
77
+ templateSwiftFileContents.gsub! "<$now$>", now.strip
78
+ templateSwiftFileContents.gsub! "<$year$>", year.strip
79
+ templateSwiftFileContents.gsub! "<$properties$>", "<#property#>".strip
80
+
81
+ ViperFileWriter.new.writeFile(newSwiftFilePath, templateSwiftFileContents)
82
+ end
83
+ end
84
+
59
85
  class ViperAndroidModelFileGenerator < ViperObjcModelFileGenerator
60
86
  def makeFiles
61
87
  makeJavaFile
@@ -21,7 +21,7 @@ module Vsvipergen
21
21
 
22
22
  def makeHeaderFile
23
23
  subPath = currPath + "/presenter"
24
- Dir.mkdir(subPath) unless File.exists?(subPath)
24
+ Dir.mkdir(subPath) unless File.exist?(subPath)
25
25
 
26
26
  newHeaderFilePath = subPath + "/VS#{prefix.strip}Presenter.h"
27
27
  generatedFilePaths.push(newHeaderFilePath)
@@ -39,7 +39,7 @@ module Vsvipergen
39
39
 
40
40
  def makeImplementFile
41
41
  subPath = currPath + "/presenter"
42
- Dir.mkdir(subPath) unless File.exists?(subPath)
42
+ Dir.mkdir(subPath) unless File.exist?(subPath)
43
43
 
44
44
  newImplementFilePath = subPath + "/VS#{prefix.strip}Presenter.m"
45
45
  generatedFilePaths.push(newImplementFilePath)
@@ -56,6 +56,32 @@ module Vsvipergen
56
56
  end
57
57
  end
58
58
 
59
+ class ViperSwiftPresenterFileGenerator < ViperObjcPresenterFileGenerator
60
+ def makeFiles
61
+ makeSwiftFile
62
+
63
+ return generatedFilePaths
64
+ end
65
+
66
+ def makeSwiftFile
67
+ subPath = currPath + "/presenter"
68
+ Dir.mkdir(subPath) unless File.exist?(subPath)
69
+
70
+ newSwiftFilePath = subPath + "/VS#{prefix.strip}Presenter.swift"
71
+ generatedFilePaths.push(newSwiftFilePath)
72
+
73
+ templateSwiftFilePath = File.expand_path '../lib/templates/presenter/VS<$$>Presenter.swift', File.dirname(__FILE__)
74
+
75
+ templateSwiftFileContents = ViperFileReader.new.readFile(templateSwiftFilePath)
76
+ templateSwiftFileContents.gsub! "<$modelPrefix$>", modelPrefix.strip
77
+ templateSwiftFileContents.gsub! "<$now$>", now.strip
78
+ templateSwiftFileContents.gsub! "<$year$>", year.strip
79
+ templateSwiftFileContents.gsub! "<$prefix$>", prefix.strip
80
+
81
+ ViperFileWriter.new.writeFile(newSwiftFilePath, templateSwiftFileContents)
82
+ end
83
+ end
84
+
59
85
  class ViperAndroidPresenterFileGenerator < ViperObjcPresenterFileGenerator
60
86
  def makeFiles
61
87
  makeJavaFile
@@ -21,7 +21,7 @@ module Vsvipergen
21
21
 
22
22
  def makeHeaderFile
23
23
  subPath = currPath + "/router"
24
- Dir.mkdir(subPath) unless File.exists?(subPath)
24
+ Dir.mkdir(subPath) unless File.exist?(subPath)
25
25
 
26
26
  newHeaderFilePath = subPath + "/VS#{prefix.strip}Router.h"
27
27
  generatedFilePaths.push(newHeaderFilePath)
@@ -39,7 +39,7 @@ module Vsvipergen
39
39
 
40
40
  def makeImplementFile
41
41
  subPath = currPath + "/router"
42
- Dir.mkdir(subPath) unless File.exists?(subPath)
42
+ Dir.mkdir(subPath) unless File.exist?(subPath)
43
43
 
44
44
  newImplementFilePath = subPath + "/VS#{prefix.strip}Router.m"
45
45
  generatedFilePaths.push(newImplementFilePath)
@@ -56,6 +56,32 @@ module Vsvipergen
56
56
  end
57
57
  end
58
58
 
59
+ class ViperSwiftRouterFileGenerator < ViperObjcRouterFileGenerator
60
+ def makeFiles
61
+ makeSwiftFile
62
+
63
+ return generatedFilePaths
64
+ end
65
+
66
+ def makeSwiftFile
67
+ subPath = currPath + "/router"
68
+ Dir.mkdir(subPath) unless File.exist?(subPath)
69
+
70
+ newSwiftFilePath = subPath + "/VS#{prefix.strip}Router.swift"
71
+ generatedFilePaths.push(newSwiftFilePath)
72
+
73
+ templateSwiftFilePath = File.expand_path '../lib/templates/router/VS<$$>Router.swift', File.dirname(__FILE__)
74
+
75
+ templateSwiftFileContents = ViperFileReader.new.readFile(templateSwiftFilePath)
76
+ templateSwiftFileContents.gsub! "<$modelPrefix$>", modelPrefix.strip
77
+ templateSwiftFileContents.gsub! "<$now$>", now.strip
78
+ templateSwiftFileContents.gsub! "<$year$>", year.strip
79
+ templateSwiftFileContents.gsub! "<$prefix$>", prefix.strip
80
+
81
+ ViperFileWriter.new.writeFile(newSwiftFilePath, templateSwiftFileContents)
82
+ end
83
+ end
84
+
59
85
  class ViperAndroidRouterFileGenerator < ViperObjcRouterFileGenerator
60
86
  def makeFiles
61
87
  makeJavaFile
@@ -21,7 +21,7 @@ module Vsvipergen
21
21
 
22
22
  def makeHeaderFile
23
23
  subPath = currPath + "/view"
24
- Dir.mkdir(subPath) unless File.exists?(subPath)
24
+ Dir.mkdir(subPath) unless File.exist?(subPath)
25
25
 
26
26
  newHeaderFilePath = subPath + "/VS#{prefix.strip}ViewController.h"
27
27
  generatedFilePaths.push(newHeaderFilePath)
@@ -39,7 +39,7 @@ module Vsvipergen
39
39
 
40
40
  def makeImplementFile
41
41
  subPath = currPath + "/view"
42
- Dir.mkdir(subPath) unless File.exists?(subPath)
42
+ Dir.mkdir(subPath) unless File.exist?(subPath)
43
43
 
44
44
  newImplementFilePath = subPath + "/VS#{prefix.strip}ViewController.m"
45
45
  generatedFilePaths.push(newImplementFilePath)
@@ -56,6 +56,32 @@ module Vsvipergen
56
56
  end
57
57
  end
58
58
 
59
+ class ViperSwiftViewControllerFileGenerator < ViperObjcViewControllerFileGenerator
60
+ def makeFiles
61
+ makeSwiftFile
62
+
63
+ return generatedFilePaths
64
+ end
65
+
66
+ def makeSwiftFile
67
+ subPath = currPath + "/view"
68
+ Dir.mkdir(subPath) unless File.exist?(subPath)
69
+
70
+ newSwiftFilePath = subPath + "/VS#{prefix.strip}ViewController.swift"
71
+ generatedFilePaths.push(newSwiftFilePath)
72
+
73
+ templateSwiftFilePath = File.expand_path '../lib/templates/view/VS<$$>ViewController.swift', File.dirname(__FILE__)
74
+
75
+ templateSwiftFileContents = ViperFileReader.new.readFile(templateSwiftFilePath)
76
+ templateSwiftFileContents.gsub! "<$modelPrefix$>", modelPrefix.strip
77
+ templateSwiftFileContents.gsub! "<$now$>", now.strip
78
+ templateSwiftFileContents.gsub! "<$year$>", year.strip
79
+ templateSwiftFileContents.gsub! "<$prefix$>", prefix.strip
80
+
81
+ ViperFileWriter.new.writeFile(newSwiftFilePath, templateSwiftFileContents)
82
+ end
83
+ end
84
+
59
85
  class ViperAndroidPageFileGenerator < ViperObjcViewControllerFileGenerator
60
86
  def makeFiles
61
87
  makeJavaFile
data/vsvipergen.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["vendys-choohyoung"]
10
10
  spec.email = ["lch@vendys.co.kr"]
11
11
 
12
- spec.summary = "cli tool to generating objective-c code for viper structure"
12
+ spec.summary = "cli tool to generating objective-c, swift or java code for viper structure"
13
13
  spec.description = "generating VS<$prefix$>Protocol.h, VS<$prefix$>ViewController.h, VS<$prefix$>ViewController.m, VS<$prefix$>Presenter.h, VS<$prefix$>Presenter.m, VS<$prefix$>Interactor.h, VS<$prefix$>Interactor.m, VS<$prefix$>Router.h, VS<$prefix$>Router.m"
14
14
  spec.homepage = ""
15
15
  spec.license = "MIT"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vsvipergen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - vendys-choohyoung
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-13 00:00:00.000000000 Z
11
+ date: 2020-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,21 +116,27 @@ files:
116
116
  - exe/vsvipergen
117
117
  - lib/templates/VS<$$>Contracts.h
118
118
  - lib/templates/VS<$$>Contracts.java
119
+ - lib/templates/VS<$$>Contracts.swift
119
120
  - lib/templates/interactor/VS<$$>Interactor.h
120
121
  - lib/templates/interactor/VS<$$>Interactor.java
121
122
  - lib/templates/interactor/VS<$$>Interactor.m
123
+ - lib/templates/interactor/VS<$$>Interactor.swift
122
124
  - lib/templates/model/VS<$$>VO.h
123
125
  - lib/templates/model/VS<$$>VO.java
124
126
  - lib/templates/model/VS<$$>VO.m
127
+ - lib/templates/model/VS<$$>VO.swift
125
128
  - lib/templates/presenter/VS<$$>Presenter.h
126
129
  - lib/templates/presenter/VS<$$>Presenter.java
127
130
  - lib/templates/presenter/VS<$$>Presenter.m
131
+ - lib/templates/presenter/VS<$$>Presenter.swift
128
132
  - lib/templates/router/VS<$$>Router.h
129
133
  - lib/templates/router/VS<$$>Router.java
130
134
  - lib/templates/router/VS<$$>Router.m
135
+ - lib/templates/router/VS<$$>Router.swift
131
136
  - lib/templates/view/VS<$$>Page.java
132
137
  - lib/templates/view/VS<$$>ViewController.h
133
138
  - lib/templates/view/VS<$$>ViewController.m
139
+ - lib/templates/view/VS<$$>ViewController.swift
134
140
  - lib/vsvipergen.rb
135
141
  - lib/vsvipergen/version.rb
136
142
  - lib/vsvipergen_contracts.rb
@@ -159,9 +165,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
165
  - !ruby/object:Gem::Version
160
166
  version: '0'
161
167
  requirements: []
162
- rubyforge_project:
163
- rubygems_version: 2.7.7
168
+ rubygems_version: 3.0.3
164
169
  signing_key:
165
170
  specification_version: 4
166
- summary: cli tool to generating objective-c code for viper structure
171
+ summary: cli tool to generating objective-c, swift or java code for viper structure
167
172
  test_files: []