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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +9 -3
  4. data/bin/console +24 -21
  5. data/exe/vsvipergen +27 -22
  6. data/lib/templates/VS<$$>Contracts.h +4 -4
  7. data/lib/templates/VS<$$>Contracts.java +1 -1
  8. data/lib/templates/VS<$$>Contracts.swift +3 -3
  9. data/lib/templates/architecturalDecisionRecordFile/VS<$$>_adr.md +32 -0
  10. data/lib/templates/interactor/VS<$$>Interactor.h +3 -3
  11. data/lib/templates/interactor/VS<$$>Interactor.java +1 -1
  12. data/lib/templates/interactor/VS<$$>Interactor.m +3 -3
  13. data/lib/templates/interactor/VS<$$>Interactor.swift +5 -5
  14. data/lib/templates/model/VS<$$>VO.h +4 -4
  15. data/lib/templates/model/VS<$$>VO.java +2 -2
  16. data/lib/templates/model/VS<$$>VO.m +6 -6
  17. data/lib/templates/model/VS<$$>VO.swift +4 -4
  18. data/lib/templates/presenter/VS<$$>Presenter.h +2 -2
  19. data/lib/templates/presenter/VS<$$>Presenter.java +1 -1
  20. data/lib/templates/presenter/VS<$$>Presenter.m +4 -4
  21. data/lib/templates/presenter/VS<$$>Presenter.swift +3 -3
  22. data/lib/templates/router/VS<$$>Router.h +3 -3
  23. data/lib/templates/router/VS<$$>Router.java +1 -1
  24. data/lib/templates/router/VS<$$>Router.m +3 -3
  25. data/lib/templates/router/VS<$$>Router.swift +3 -3
  26. data/lib/templates/view/VS<$$>Page.java +1 -1
  27. data/lib/templates/view/VS<$$>ViewController.h +3 -3
  28. data/lib/templates/view/VS<$$>ViewController.m +2 -2
  29. data/lib/templates/view/VS<$$>ViewController.swift +2 -2
  30. data/lib/vsvipergen.rb +35 -23
  31. data/lib/vsvipergen/version.rb +1 -1
  32. data/lib/vsvipergen_adr.rb +29 -0
  33. data/lib/vsvipergen_contracts.rb +6 -7
  34. data/lib/vsvipergen_interactor.rb +8 -8
  35. data/lib/vsvipergen_model.rb +16 -12
  36. data/lib/vsvipergen_presenter.rb +8 -8
  37. data/lib/vsvipergen_router.rb +8 -8
  38. data/lib/vsvipergen_view.rb +8 -8
  39. data/vsvipergen.gemspec +3 -2
  40. metadata +21 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce84b981ebcdf231134370ed75cd51e001ea3d714570242d9c5ca2c251220734
4
- data.tar.gz: 1672ac7dd893451d08d208c3489ddc36c6cb418db2b82f9428027c259b9ae226
3
+ metadata.gz: 7de45e52ba16e779f44ba299885f21c2f685504edaf0bb60fe05cbc6a165e8fd
4
+ data.tar.gz: 13f2a1197f241cfa9579b6a45e70cd96d307f7a9f9e5b90dabbffb2a2db723a7
5
5
  SHA512:
6
- metadata.gz: 44712c606bcf8412474cf45fa3b0fa09b960b503cba254b1516532ce1be7df1f10b96f5f238f7fcf615963640109096edd2befc88e30df5275ce94ae0d95d2a2
7
- data.tar.gz: 4cea80a9fc1ba022adc65cc7ed7e22694c87eb9c7c33b2b4d39c1b655a5c24ff6c1f6e532e6f7463bbd8e96b79422674c3b28634449931f54d775f7fb6113ec4
6
+ metadata.gz: 2371e05a656c0a59e31942a169abe7aad55ddd7d18562898203b45139372fb9838f1f1b141d56dc33172c2c76713bd5d43b2240e873608130b187ae766ef7215
7
+ data.tar.gz: 4f90d98ffab97a5ac8de13274e0d99366b77c152175d6b33b2efd320a440ab69f32ea3ea9dc02217522349a83e4294c5135c60926c1cffce4459da72247d8ef8
data/Gemfile CHANGED
@@ -4,3 +4,5 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in vsvipergen.gemspec
6
6
  gemspec
7
+
8
+ gem 'pry', '~> 0.13.1'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vsvipergen (0.1.9)
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
- rake (10.5.0)
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
- rake (~> 10.0)
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
- filePrefix = ""
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:type" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
44
- filePrefix = gets
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 filePrefix == "" then
47
- filePrefix = "Default"
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(filePrefix, modelPrefix, now, year)
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(filePrefix.strip.downcase)
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
- filePrefix = ""
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:type" + " Login".yellow + " for VS" + "Login".yellow + "ViewController(or VS" + "Login".yellow + "Page), ...] : "
43
- filePrefix = gets
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 filePrefix == "" then
46
- filePrefix = "Default"
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(filePrefix, modelPrefix, now, year)
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(filePrefix.strip.downcase)
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<$filePrefix$>Contracts.h
3
- // VLunch
2
+ // VS<$prefix$>Contracts.h
3
+ // <$projectName$>
4
4
  //
5
- // Created by Vendys on <$now$>..
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<$modelPrefix$>VO.h"
11
+ #import "VS<$prefix$>VO.h"
12
12
 
13
13
  // presenter 클래스가 구현해야 할 프로토콜 : view 클래스가 호출
14
14
  @protocol I<$prefix$>PresenterForView <NSObject>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Created by Vendys on <$now$>..
2
+ * Created by <$orgName$> on <$now$>..
3
3
  */
4
4
 
5
5
  public class VS<$prefix$>Contracts {
@@ -1,8 +1,8 @@
1
1
  //
2
- // VS<$filePrefix$>Contracts.swift
3
- // VLunch
2
+ // VS<$prefix$>Contracts.swift
3
+ // <$projectName$>
4
4
  //
5
- // Created by Vendys on <$now$>..
5
+ // Created by <$orgName$> on <$now$>..
6
6
  // Copyright © <$year$>년 Vendys. All rights reserved.
7
7
  //
8
8
 
@@ -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<$modelPrefix$>VO.h
3
- // VLunch
2
+ // VS<$prefix$>VO.h
3
+ // <$projectName$>
4
4
  //
5
- // Created by vendys on <$now$>..
5
+ // Created by <$orgName$> on <$now$>..
6
6
  // Copyright © <$year$>년 Vendys. All rights reserved.
7
7
  //
8
8
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Created by Vendys on <$now$>..
2
+ * Created by <$orgName$> on <$now$>..
3
3
  */
4
4
 
5
5
  public class VS<$prefix$>Interactor extends CommonDataManager implements VS<$prefix$>Constracts.I<$prefix$>InteractorForPresenter {
@@ -1,8 +1,8 @@
1
1
  //
2
- // VS<$modelPrefix$>VO.h
3
- // VLunch
2
+ // VS<$prefix$>VO.h
3
+ // <$projectName$>
4
4
  //
5
- // Created by vendys on <$now$>..
5
+ // Created by <$orgName$> on <$now$>..
6
6
  // Copyright © <$year$>년 Vendys. All rights reserved.
7
7
  //
8
8
 
@@ -1,8 +1,8 @@
1
1
  //
2
- // VS<$modelPrefix$>VO.swift
3
- // VLunch
2
+ // VS<$prefix$>VO.swift
3
+ // <$projectName$>
4
4
  //
5
- // Created by vendys on <$now$>..
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<$modelPrefix$>VO
13
+ var vo: VS<$prefix$>VO
14
14
 
15
- init(vo: VS<$modelPrefix$>VO) {
15
+ init(vo: VS<$prefix$>VO) {
16
16
  self.vo = vo
17
17
  }
18
18
  }
@@ -1,13 +1,13 @@
1
1
  //
2
- // VS<$modelPrefix$>VO.h
3
- // VLunch
2
+ // VS<$prefix$>VO.h
3
+ // <$projectName$>
4
4
  //
5
- // Created by vendys on <$now$>..
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<$modelPrefix$>VO : JSONModel
11
+ @interface VS<$prefix$>VO : JSONModel
12
12
  <$properties$>
13
13
  @end
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Created by Vendys on <$now$>..
2
+ * Created by <$orgName$> on <$now$>..
3
3
  */
4
4
 
5
- public class VS<$modelPrefix$> {
5
+ public class VS<$prefix$> {
6
6
  <$properties$>
7
7
  }