vsvipergen 0.1.10 → 0.1.11
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 +4 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +9 -3
- data/bin/console +24 -21
- data/exe/vsvipergen +27 -22
- data/lib/templates/VS<$$>Contracts.h +4 -4
- data/lib/templates/VS<$$>Contracts.java +1 -1
- data/lib/templates/VS<$$>Contracts.swift +3 -3
- data/lib/templates/architecturalDecisionRecordFile/VS<$$>_adr.md +32 -0
- data/lib/templates/interactor/VS<$$>Interactor.h +3 -3
- data/lib/templates/interactor/VS<$$>Interactor.java +1 -1
- data/lib/templates/interactor/VS<$$>Interactor.m +3 -3
- data/lib/templates/interactor/VS<$$>Interactor.swift +5 -5
- data/lib/templates/model/VS<$$>VO.h +4 -4
- data/lib/templates/model/VS<$$>VO.java +2 -2
- data/lib/templates/model/VS<$$>VO.m +6 -6
- data/lib/templates/model/VS<$$>VO.swift +4 -4
- data/lib/templates/presenter/VS<$$>Presenter.h +2 -2
- data/lib/templates/presenter/VS<$$>Presenter.java +1 -1
- data/lib/templates/presenter/VS<$$>Presenter.m +4 -4
- data/lib/templates/presenter/VS<$$>Presenter.swift +3 -3
- data/lib/templates/router/VS<$$>Router.h +3 -3
- data/lib/templates/router/VS<$$>Router.java +1 -1
- data/lib/templates/router/VS<$$>Router.m +3 -3
- data/lib/templates/router/VS<$$>Router.swift +3 -3
- data/lib/templates/view/VS<$$>Page.java +1 -1
- data/lib/templates/view/VS<$$>ViewController.h +3 -3
- data/lib/templates/view/VS<$$>ViewController.m +2 -2
- data/lib/templates/view/VS<$$>ViewController.swift +2 -2
- data/lib/vsvipergen.rb +35 -23
- data/lib/vsvipergen/version.rb +1 -1
- data/lib/vsvipergen_adr.rb +29 -0
- data/lib/vsvipergen_contracts.rb +6 -7
- data/lib/vsvipergen_interactor.rb +8 -8
- data/lib/vsvipergen_model.rb +16 -12
- data/lib/vsvipergen_presenter.rb +8 -8
- data/lib/vsvipergen_router.rb +8 -8
- data/lib/vsvipergen_view.rb +8 -8
- data/vsvipergen.gemspec +3 -2
- metadata +21 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7de45e52ba16e779f44ba299885f21c2f685504edaf0bb60fe05cbc6a165e8fd
|
4
|
+
data.tar.gz: 13f2a1197f241cfa9579b6a45e70cd96d307f7a9f9e5b90dabbffb2a2db723a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2371e05a656c0a59e31942a169abe7aad55ddd7d18562898203b45139372fb9838f1f1b141d56dc33172c2c76713bd5d43b2240e873608130b187ae766ef7215
|
7
|
+
data.tar.gz: 4f90d98ffab97a5ac8de13274e0d99366b77c152175d6b33b2efd320a440ab69f32ea3ea9dc02217522349a83e4294c5135c60926c1cffce4459da72247d8ef8
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
vsvipergen (0.1.
|
4
|
+
vsvipergen (0.1.11)
|
5
5
|
colorize (~> 0.8.1)
|
6
6
|
xcodeproj (~> 1.7.0)
|
7
7
|
|
@@ -11,10 +11,15 @@ GEM
|
|
11
11
|
CFPropertyList (3.0.0)
|
12
12
|
atomos (0.1.3)
|
13
13
|
claide (1.0.2)
|
14
|
+
coderay (1.1.3)
|
14
15
|
colored2 (3.1.2)
|
15
16
|
colorize (0.8.1)
|
17
|
+
method_source (1.0.0)
|
16
18
|
nanaimo (0.2.6)
|
17
|
-
|
19
|
+
pry (0.13.1)
|
20
|
+
coderay (~> 1.1)
|
21
|
+
method_source (~> 1.0)
|
22
|
+
rake (13.0.0)
|
18
23
|
xcodeproj (1.7.0)
|
19
24
|
CFPropertyList (>= 2.3.3, < 4.0)
|
20
25
|
atomos (~> 0.1.3)
|
@@ -28,7 +33,8 @@ PLATFORMS
|
|
28
33
|
DEPENDENCIES
|
29
34
|
bundler (~> 1.16)
|
30
35
|
colorize (~> 0.8.1)
|
31
|
-
|
36
|
+
pry (~> 0.13.1)
|
37
|
+
rake (~> 13.0)
|
32
38
|
vsvipergen!
|
33
39
|
xcodeproj (~> 1.7.0)
|
34
40
|
|
data/bin/console
CHANGED
@@ -8,18 +8,28 @@ require "vsvipergen_interactor"
|
|
8
8
|
require "vsvipergen_presenter"
|
9
9
|
require "vsvipergen_view"
|
10
10
|
require "vsvipergen_router"
|
11
|
+
require "vsvipergen_adr"
|
11
12
|
require "xcodeproj"
|
12
13
|
require "colorize"
|
14
|
+
require 'pry'
|
13
15
|
|
14
16
|
begin
|
15
17
|
#################################################
|
16
18
|
############ handle user input start ############
|
17
19
|
projectName = ""
|
18
20
|
lang = ""
|
19
|
-
|
20
|
-
modelPrefix = ""
|
21
|
+
prefix = ""
|
21
22
|
now = Time.now.strftime("%Y/%m/%d")
|
22
23
|
year = Time.now.strftime("%Y")
|
24
|
+
orgName = ""
|
25
|
+
|
26
|
+
# orgName 입력 요구
|
27
|
+
while true
|
28
|
+
puts "input organization name : "
|
29
|
+
orgName = gets
|
30
|
+
|
31
|
+
break if (orgName.strip != "")
|
32
|
+
end
|
23
33
|
|
24
34
|
# 프로그래밍 언어 입력 요구
|
25
35
|
while true
|
@@ -29,7 +39,7 @@ begin
|
|
29
39
|
break if (lang.strip == "objc" || lang.strip == "o" || lang.strip == "android" || lang.strip == "a" || lang.strip == "swift" || lang.strip == "s")
|
30
40
|
end
|
31
41
|
|
32
|
-
# objective-c 선택일 경우 프로젝트 파일 이름 입력 요구
|
42
|
+
# objective-c or swift 선택일 경우 프로젝트 파일 이름 입력 요구
|
33
43
|
if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
|
34
44
|
puts "input xcode project file name [ex:VLunch] :"
|
35
45
|
while true
|
@@ -40,21 +50,11 @@ begin
|
|
40
50
|
end
|
41
51
|
|
42
52
|
# 파일 prefix 입력 요구
|
43
|
-
puts "input file prefix [ex:
|
44
|
-
|
53
|
+
puts "input file prefix [ex:input" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
|
54
|
+
prefix = gets
|
45
55
|
|
46
|
-
if
|
47
|
-
|
48
|
-
end
|
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
|
56
|
+
if prefix == "" then
|
57
|
+
prefix = "Default"
|
58
58
|
end
|
59
59
|
|
60
60
|
############# handle user input end #############
|
@@ -70,7 +70,9 @@ begin
|
|
70
70
|
subPathAndFilePathHashes = []
|
71
71
|
|
72
72
|
generatorFactory = Vsvipergen::ViperGeneratorFactory.new
|
73
|
-
generatorFactory.init(
|
73
|
+
generatorFactory.init(prefix, now, year, projectName, orgName)
|
74
|
+
|
75
|
+
generatorFactory.createAdrFileGenerator
|
74
76
|
|
75
77
|
if lang.strip == "objc" || lang.strip == "o" then
|
76
78
|
fileGenerators = generatorFactory.createObjcGenerator
|
@@ -79,13 +81,13 @@ begin
|
|
79
81
|
else
|
80
82
|
fileGenerators = generatorFactory.createAndroidGenerator
|
81
83
|
end
|
84
|
+
|
82
85
|
############# create file generator #############
|
83
86
|
#################################################
|
84
87
|
|
85
|
-
|
86
|
-
|
87
88
|
#################################################
|
88
89
|
################## make file ###################
|
90
|
+
|
89
91
|
for generator in fileGenerators
|
90
92
|
files = generator.makeFiles
|
91
93
|
|
@@ -93,6 +95,7 @@ begin
|
|
93
95
|
generatedFilePaths.push(file)
|
94
96
|
end
|
95
97
|
end
|
98
|
+
|
96
99
|
################## make file ###################
|
97
100
|
#################################################
|
98
101
|
|
@@ -104,7 +107,7 @@ begin
|
|
104
107
|
project = Xcodeproj::Project.open(xcodeProjectFile.strip)
|
105
108
|
targets = project.targets
|
106
109
|
mainTarget = project.targets.first
|
107
|
-
newGroup = project.new_group(
|
110
|
+
newGroup = project.new_group(prefix.strip.downcase)
|
108
111
|
|
109
112
|
# Add files, groups to the project in the main group
|
110
113
|
for filePath in generatedFilePaths
|
data/exe/vsvipergen
CHANGED
@@ -7,18 +7,27 @@ require "vsvipergen_interactor"
|
|
7
7
|
require "vsvipergen_presenter"
|
8
8
|
require "vsvipergen_view"
|
9
9
|
require "vsvipergen_router"
|
10
|
+
require "vsvipergen_adr"
|
10
11
|
require "xcodeproj"
|
11
12
|
require "colorize"
|
12
13
|
|
13
|
-
begin
|
14
|
+
begin
|
14
15
|
#################################################
|
15
16
|
############ handle user input start ############
|
16
17
|
projectName = ""
|
17
18
|
lang = ""
|
18
|
-
|
19
|
-
modelPrefix = ""
|
19
|
+
prefix = ""
|
20
20
|
now = Time.now.strftime("%Y/%m/%d")
|
21
21
|
year = Time.now.strftime("%Y")
|
22
|
+
orgName = ""
|
23
|
+
|
24
|
+
# orgName 입력 요구
|
25
|
+
while true
|
26
|
+
puts "input organization name : "
|
27
|
+
orgName = gets
|
28
|
+
|
29
|
+
break if (orgName.strip != "")
|
30
|
+
end
|
22
31
|
|
23
32
|
# 프로그래밍 언어 입력 요구
|
24
33
|
while true
|
@@ -28,7 +37,7 @@ begin
|
|
28
37
|
break if (lang.strip == "objc" || lang.strip == "o" || lang.strip == "android" || lang.strip == "a" || lang.strip == "swift" || lang.strip == "s")
|
29
38
|
end
|
30
39
|
|
31
|
-
# objective-c 선택일 경우 프로젝트 파일 이름 입력 요구
|
40
|
+
# objective-c or swift 선택일 경우 프로젝트 파일 이름 입력 요구
|
32
41
|
if lang.strip == "objc" || lang.strip == "o" || lang.strip == "swift" || lang.strip == "s" then
|
33
42
|
puts "input xcode project file name [ex:VLunch] :"
|
34
43
|
while true
|
@@ -39,21 +48,11 @@ begin
|
|
39
48
|
end
|
40
49
|
|
41
50
|
# 파일 prefix 입력 요구
|
42
|
-
puts "input file prefix [ex:
|
43
|
-
|
51
|
+
puts "input file prefix [ex:input" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
|
52
|
+
prefix = gets
|
44
53
|
|
45
|
-
if
|
46
|
-
|
47
|
-
end
|
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
|
54
|
+
if prefix == "" then
|
55
|
+
prefix = "Default"
|
57
56
|
end
|
58
57
|
|
59
58
|
############# handle user input end #############
|
@@ -66,9 +65,12 @@ begin
|
|
66
65
|
############# create file generator #############
|
67
66
|
fileGenerators = []
|
68
67
|
generatedFilePaths = []
|
68
|
+
subPathAndFilePathHashes = []
|
69
69
|
|
70
70
|
generatorFactory = Vsvipergen::ViperGeneratorFactory.new
|
71
|
-
generatorFactory.init(
|
71
|
+
generatorFactory.init(prefix, now, year, projectName, orgName)
|
72
|
+
|
73
|
+
generatorFactory.createAdrFileGenerator
|
72
74
|
|
73
75
|
if lang.strip == "objc" || lang.strip == "o" then
|
74
76
|
fileGenerators = generatorFactory.createObjcGenerator
|
@@ -77,13 +79,13 @@ begin
|
|
77
79
|
else
|
78
80
|
fileGenerators = generatorFactory.createAndroidGenerator
|
79
81
|
end
|
82
|
+
|
80
83
|
############# create file generator #############
|
81
84
|
#################################################
|
82
85
|
|
83
|
-
|
84
|
-
|
85
86
|
#################################################
|
86
87
|
################## make file ###################
|
88
|
+
|
87
89
|
for generator in fileGenerators
|
88
90
|
files = generator.makeFiles
|
89
91
|
|
@@ -91,6 +93,7 @@ begin
|
|
91
93
|
generatedFilePaths.push(file)
|
92
94
|
end
|
93
95
|
end
|
96
|
+
|
94
97
|
################## make file ###################
|
95
98
|
#################################################
|
96
99
|
|
@@ -102,14 +105,16 @@ begin
|
|
102
105
|
project = Xcodeproj::Project.open(xcodeProjectFile.strip)
|
103
106
|
targets = project.targets
|
104
107
|
mainTarget = project.targets.first
|
105
|
-
newGroup = project.new_group(
|
108
|
+
newGroup = project.new_group(prefix.strip.downcase)
|
106
109
|
|
107
110
|
# Add files, groups to the project in the main group
|
108
111
|
for filePath in generatedFilePaths
|
112
|
+
puts "filePath : #{filePath}"
|
109
113
|
|
110
114
|
# extract child group name from file path
|
111
115
|
pathArr = filePath.split("/")
|
112
116
|
childGroupName = pathArr[pathArr.count - 2]
|
117
|
+
puts "childGroupName : #{childGroupName}"
|
113
118
|
childGroup = nil
|
114
119
|
|
115
120
|
if childGroupName != "" then
|
@@ -1,14 +1,14 @@
|
|
1
1
|
//
|
2
|
-
// VS<$
|
3
|
-
//
|
2
|
+
// VS<$prefix$>Contracts.h
|
3
|
+
// <$projectName$>
|
4
4
|
//
|
5
|
-
// Created by
|
5
|
+
// Created by <$orgName$> on <$now$>..
|
6
6
|
// Copyright © <$year$>년 Vendys. All rights reserved.
|
7
7
|
//
|
8
8
|
|
9
9
|
#import <Foundation/Foundation.h>
|
10
10
|
#import <UIKit/UIKit.h>
|
11
|
-
#import "VS<$
|
11
|
+
#import "VS<$prefix$>VO.h"
|
12
12
|
|
13
13
|
// presenter 클래스가 구현해야 할 프로토콜 : view 클래스가 호출
|
14
14
|
@protocol I<$prefix$>PresenterForView <NSObject>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# [구조적 의사결정 기록(short title of solved problem and solution)]
|
2
|
+
* 의사결정 참여자(Deciders): [개발자들(커밋 author 를 참고)]
|
3
|
+
* 날짜(Date): [커밋 날짜를 참고]
|
4
|
+
* 이슈(Technical Story): [jira issue id]
|
5
|
+
|
6
|
+
## 의사결정이 필요한 배경(Context and Problem Statement)
|
7
|
+
[왜 의사결정이 필요했는지 서술하시오]
|
8
|
+
|
9
|
+
## 의사결정에 주요한 영향을 준 요인(Decision Drivers)
|
10
|
+
* [고객사: 요구사항]
|
11
|
+
|
12
|
+
## 고려가능한 대체 옵션(Considered Options)
|
13
|
+
* [없다면 무시]
|
14
|
+
|
15
|
+
## 결과(Decision Outcome)
|
16
|
+
이런 저런 요소들을 고려한 결과를 작성할 것.
|
17
|
+
|
18
|
+
### 긍정적 기대효과(Positive Consequences)
|
19
|
+
* [고객사의 필요 충족]
|
20
|
+
|
21
|
+
### 부정적 기대효과(Negative Consequences)
|
22
|
+
* [고객사가 재계약하지 않을 경우 쓸모없는 기능을 전락할 수 있음]
|
23
|
+
|
24
|
+
## 고려가능한 대체 옵션의 장,단점(Pros and Cons of the Options)
|
25
|
+
### [없다면 무시]
|
26
|
+
[없다면 무시]
|
27
|
+
* Good, because [argument a]
|
28
|
+
* Bad, because [argument b]
|
29
|
+
|
30
|
+
## Links
|
31
|
+
* [당신이 읽고 있는 이 파일의 원본 템플릿(이 링크는 절대 제거하지 마시오)](https://github.com/joelparkerhenderson/architecture_decision_record/blob/master/adr_template_madr.md)
|
32
|
+
* [Link type](Link to ADR)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
//
|
2
|
-
// VS<$
|
3
|
-
//
|
2
|
+
// VS<$prefix$>VO.swift
|
3
|
+
// <$projectName$>
|
4
4
|
//
|
5
|
-
// Created by
|
5
|
+
// Created by <$orgName$> on <$now$>..
|
6
6
|
// Copyright © <$year$>년 Vendys. All rights reserved.
|
7
7
|
//
|
8
8
|
|
@@ -10,9 +10,9 @@ import Foundation
|
|
10
10
|
|
11
11
|
class VS<$prefix$>Interactor {
|
12
12
|
weak var presenter: I<$prefix$>PresenterForInteractor?
|
13
|
-
var vo: VS<$
|
13
|
+
var vo: VS<$prefix$>VO
|
14
14
|
|
15
|
-
init(vo: VS<$
|
15
|
+
init(vo: VS<$prefix$>VO) {
|
16
16
|
self.vo = vo
|
17
17
|
}
|
18
18
|
}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
//
|
2
|
-
// VS<$
|
3
|
-
//
|
2
|
+
// VS<$prefix$>VO.h
|
3
|
+
// <$projectName$>
|
4
4
|
//
|
5
|
-
// Created by
|
5
|
+
// Created by <$orgName$> on <$now$>..
|
6
6
|
// Copyright © <$year$>년 Vendys. All rights reserved.
|
7
7
|
//
|
8
8
|
|
9
9
|
#import <Foundation/Foundation.h>
|
10
10
|
|
11
|
-
@interface VS<$
|
11
|
+
@interface VS<$prefix$>VO : JSONModel
|
12
12
|
<$properties$>
|
13
13
|
@end
|