bigkeeper 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE.md +20 -0
  3. data/.gitignore +50 -0
  4. data/.travis.yml +17 -0
  5. data/CODE_OF_CONDUCT.md +46 -0
  6. data/CONTRIBUTING.md +70 -0
  7. data/Gemfile +10 -0
  8. data/Gemfile.lock +114 -0
  9. data/LICENSE +21 -0
  10. data/README.md +109 -0
  11. data/Rakefile +2 -0
  12. data/big_keeper.gemspec +47 -0
  13. data/bin/big +14 -0
  14. data/bin/setup +8 -0
  15. data/docs/en-US/FEATURE.md +0 -0
  16. data/docs/en-US/README.md +50 -0
  17. data/docs/zh-CN/BIGKEEPER_FILE.md +62 -0
  18. data/docs/zh-CN/FEATURE&HOTFIX.md +121 -0
  19. data/docs/zh-CN/PODFILE.md +43 -0
  20. data/docs/zh-CN/README.md +107 -0
  21. data/docs/zh-CN/RECOMMEND.md +22 -0
  22. data/docs/zh-CN/RELEASE.md +43 -0
  23. data/lib/big_keeper.rb +295 -0
  24. data/lib/big_keeper/command/feature&hotfix/delete.rb +33 -0
  25. data/lib/big_keeper/command/feature&hotfix/finish.rb +56 -0
  26. data/lib/big_keeper/command/feature&hotfix/pull.rb +24 -0
  27. data/lib/big_keeper/command/feature&hotfix/push.rb +25 -0
  28. data/lib/big_keeper/command/feature&hotfix/rebase.rb +27 -0
  29. data/lib/big_keeper/command/feature&hotfix/start.rb +67 -0
  30. data/lib/big_keeper/command/feature&hotfix/switch.rb +47 -0
  31. data/lib/big_keeper/command/feature&hotfix/update.rb +69 -0
  32. data/lib/big_keeper/command/pod/podfile.rb +69 -0
  33. data/lib/big_keeper/command/release/home.rb +66 -0
  34. data/lib/big_keeper/command/release/module.rb +106 -0
  35. data/lib/big_keeper/model/gitflow_type.rb +31 -0
  36. data/lib/big_keeper/model/operate_type.rb +19 -0
  37. data/lib/big_keeper/model/podfile_model.rb +33 -0
  38. data/lib/big_keeper/model/podfile_type.rb +44 -0
  39. data/lib/big_keeper/service/git_service.rb +186 -0
  40. data/lib/big_keeper/service/module_service.rb +124 -0
  41. data/lib/big_keeper/service/stash_service.rb +45 -0
  42. data/lib/big_keeper/util/bigkeeper_parser.rb +198 -0
  43. data/lib/big_keeper/util/git_operator.rb +142 -0
  44. data/lib/big_keeper/util/gitflow_operator.rb +51 -0
  45. data/lib/big_keeper/util/info_plist_operator.rb +46 -0
  46. data/lib/big_keeper/util/logger.rb +40 -0
  47. data/lib/big_keeper/util/pod_operator.rb +15 -0
  48. data/lib/big_keeper/util/podfile_detector.rb +108 -0
  49. data/lib/big_keeper/util/podfile_module.rb +64 -0
  50. data/lib/big_keeper/util/podfile_operator.rb +166 -0
  51. data/lib/big_keeper/util/xcode_operator.rb +13 -0
  52. data/lib/big_keeper/version.rb +3 -0
  53. data/resources/banner.png +0 -0
  54. data/resources/keynote/big-keeper-readme-example.key +0 -0
  55. data/resources/keynote/big-keeper-readme-feature.key +0 -0
  56. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.001.jpeg +0 -0
  57. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.002.jpeg +0 -0
  58. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.003.jpeg +0 -0
  59. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.004.jpeg +0 -0
  60. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.005.jpeg +0 -0
  61. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.006.jpeg +0 -0
  62. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.007.jpeg +0 -0
  63. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.008.jpeg +0 -0
  64. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.009.jpeg +0 -0
  65. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.010.jpeg +0 -0
  66. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.011.jpeg +0 -0
  67. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.012.jpeg +0 -0
  68. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.013.jpeg +0 -0
  69. data/resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.014.jpeg +0 -0
  70. data/resources/keynote/big-keeper-readme-release.key +0 -0
  71. data/resources/readme/big-keeper-readme.001.png +0 -0
  72. data/resources/readme/big-keeper-readme.002.png +0 -0
  73. data/resources/readme/big-keeper-readme.003.png +0 -0
  74. data/resources/readme/big-keeper-readme.004.png +0 -0
  75. data/resources/readme/big-keeper-readme.005.png +0 -0
  76. data/resources/readme/big-keeper-readme.006.png +0 -0
  77. data/resources/readme/big-keeper-readme.007.png +0 -0
  78. data/resources/readme/big-keeper-readme.008.png +0 -0
  79. data/resources/readme/big-keeper-readme.009.png +0 -0
  80. data/resources/readme/big-keeper-readme.010.png +0 -0
  81. data/resources/readme/big-keeper-readme.011.png +0 -0
  82. data/resources/readme/big-keeper-readme.012.png +0 -0
  83. metadata +311 -0
@@ -0,0 +1,15 @@
1
+ require 'big_keeper/util/logger'
2
+
3
+ module BigKeeper
4
+ class PodOperator
5
+ def self.pod_install(path, repo_update)
6
+ Logger.highlight('Start pod install, waiting...')
7
+
8
+ # pod install
9
+ `pod repo update` if repo_update
10
+ `pod install --project-directory=#{path}`
11
+
12
+ Logger.highlight('Finish pod install.')
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,108 @@
1
+ require 'big_keeper/util/bigkeeper_parser'
2
+ require 'big_keeper/model/podfile_model'
3
+ require 'big_keeper/util/logger'
4
+
5
+ module BigKeeper
6
+
7
+ class PodfileDetector
8
+
9
+ attr_accessor :module_list, :main_path
10
+ $unlock_pod_list = []
11
+ $modify_pod_list = {}
12
+
13
+ def initialize(main_path,module_list)
14
+ @module_list = module_list
15
+ @main_path = main_path
16
+ end
17
+
18
+ def get_unlock_pod_list
19
+ podfile_lines = File.readlines("#{@main_path}/Podfile")
20
+ Logger.highlight("Analyzing Podfile...") unless podfile_lines.size.zero?
21
+ podfile_lines.collect do |sentence|
22
+ deal_podfile_line(sentence) unless sentence =~(/(\d+.){1,2}\d+/)
23
+ end
24
+ $unlock_pod_list
25
+ # p $unlock_pod_list
26
+ end
27
+
28
+ def deal_podfile_line(sentence)
29
+ if sentence.include?('pod ')
30
+ pod_model = Podfile_Modle.new(sentence)
31
+ if !pod_model.name.empty? && pod_model.configurations != '[\'Debug\']' && pod_model.path == nil && pod_model.tag == nil
32
+ $unlock_pod_list << pod_model.name unless @module_list.include?(pod_model.name)
33
+ end
34
+ pod_model
35
+ end
36
+ end
37
+
38
+
39
+ def deal_lock_file(main_path,deal_list)
40
+ $result = {}
41
+ podfile_lock_lines = File.readlines("#{main_path}/Podfile.lock")
42
+ Logger.highlight("Analyzing Podfile.lock...") unless podfile_lock_lines.size.zero?
43
+ podfile_lock_lines.select do |sentence|
44
+ if sentence.include?('DEPENDENCIES') #指定范围解析 Dependencies 之前
45
+ break
46
+ end
47
+
48
+ temp_sentence = sentence.strip
49
+ pod_name = get_lock_podname(temp_sentence)
50
+ if deal_list.include?(pod_name)
51
+ current_version = $result[pod_name]
52
+ temp_version = get_lock_version(temp_sentence)
53
+ if temp_version != nil
54
+ if current_version != nil
55
+ $result[pod_name] = chose_version(current_version,temp_version)
56
+ else
57
+ $result[pod_name] = temp_version
58
+ end
59
+ end
60
+ end
61
+ end
62
+ return $result
63
+ end
64
+
65
+ def self.get_pod_model(sentence)
66
+ if sentence.include?('pod ')
67
+ pod_model = Podfile_Modle.new(sentence)
68
+ return pod_model
69
+ end
70
+ end
71
+
72
+ def get_pod_name(sentence)
73
+ pod_model = deal_podfile_line(sentence)
74
+ pod_name = pod_model.name if pod_model != nil && pod_model.configurations.nil
75
+ @unlock_pod_list << pod_name unless @module_list.include pod_name
76
+ end
77
+
78
+
79
+
80
+ def get_lock_podname(sentence) #获得pod名称
81
+ match_result = /(\d+.){1,2}\d+/.match(sentence.delete('- :~>='))
82
+ pod_name = match_result.pre_match unless match_result == nil
83
+ return pod_name.delete('()') unless pod_name == nil
84
+ end
85
+
86
+ def get_lock_version(sentence)#获得pod版本号
87
+ match_result = /(\d+.){1,2}\d+/.match(sentence)
88
+ return match_result[0] unless match_result == nil
89
+ end
90
+
91
+ def chose_version(cur_version,temp_version)
92
+ # p "cur:#{cur_version},temp:#{temp_version}"
93
+ cur_list = cur_version.split('.')
94
+ temp_list = temp_version.split('.')
95
+ temp_list << 0.to_s if temp_list.size == 2
96
+ if cur_list[0] >= temp_list[0]
97
+ if cur_list[1] >= temp_list[1]
98
+ if cur_list[2] > temp_list[2]
99
+ return cur_version
100
+ end
101
+ return temp_version
102
+ end
103
+ return temp_version
104
+ end
105
+ return temp_version
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,64 @@
1
+ require 'big_keeper/util/bigkeeper_parser'
2
+ require 'big_keeper/util/podfile_detector'
3
+ require 'big_keeper/model/podfile_model'
4
+ require 'big_keeper/util/logger'
5
+
6
+ module BigKeeper
7
+
8
+ class PodfileModuleDetector
9
+ @module_list = []
10
+
11
+ def initialize(main_path)
12
+ @module_list = BigkeeperParser.module_names
13
+ @main_path = main_path
14
+ @update_modules = {}
15
+ # check_version_list
16
+ end
17
+
18
+ #检查需要更新业务库列表
19
+ def check_version_list
20
+ if @module_list.empty?
21
+ Logger.highlight('There is not any module should to be check.')
22
+ return
23
+ else
24
+ Logger.highlight('Checking..')
25
+ @module_list.each do |module_name|
26
+ get_pod_search_result(module_name)
27
+ end
28
+
29
+ #获得pod信息后
30
+ deal_module_info
31
+ end
32
+ end
33
+
34
+
35
+ def get_pod_search_result(pod_name)
36
+ #输入pod Search 结果
37
+ `pod search #{pod_name} --ios --simple >> #{@main_path}/bigKeeperPodInfo.tmp`
38
+ end
39
+
40
+ def deal_module_info
41
+ podfile_lines = File.readlines("#{@main_path}/bigKeeperPodInfo.tmp")
42
+ Logger.highlight("Analyzing modules info...") unless podfile_lines.size.zero?
43
+ podfile_lines.collect do |sentence|
44
+ if sentence =~(/pod/)
45
+ sentence = sentence.sub('pod','')
46
+ sentence = sentence.delete('\n\'')
47
+ match_result = sentence.split(',')
48
+ pod_name = match_result[0].strip
49
+ latest_version = match_result[1].strip
50
+ @update_modules[pod_name] = latest_version unless @update_modules.include?(pod_name)
51
+ end
52
+ end
53
+ p @update_modules
54
+ File.delete("#{@main_path}/bigKeeperPodInfo.tmp")
55
+ @update_modules
56
+ end
57
+
58
+ def get_module_latest_version(pod_model)
59
+
60
+ end
61
+
62
+ end
63
+
64
+ end
@@ -0,0 +1,166 @@
1
+ require 'tempfile'
2
+ require 'fileutils'
3
+ require 'big_keeper/model/podfile_type'
4
+ require 'big_keeper/util/podfile_detector'
5
+
6
+ module BigKeeper
7
+ # Operator for podfile
8
+ class PodfileOperator
9
+ def has(podfile, module_name)
10
+ File.open(podfile, 'r') do |file|
11
+ file.each_line do |line|
12
+ if line.include?module_name
13
+ return true
14
+ end
15
+ end
16
+ end
17
+ false
18
+ end
19
+
20
+ def modules_with_type(podfile, modules, type)
21
+ matched_modules = []
22
+ File.open(podfile, 'r') do |file|
23
+ file.each_line do |line|
24
+ modules.each do |module_name|
25
+ if line =~ /pod\s*'#{module_name}',#{ModuleType.regex(type)}/
26
+ matched_modules << module_name
27
+ break
28
+ end
29
+ end
30
+ end
31
+ end
32
+ matched_modules
33
+ end
34
+
35
+ def find_and_replace(podfile, module_name, module_type, source)
36
+ temp_file = Tempfile.new('.Podfile.tmp')
37
+
38
+ begin
39
+ File.open(podfile, 'r') do |file|
40
+ file.each_line do |line|
41
+ if line.include?module_name
42
+ temp_file.puts generate_module_config(module_name, module_type, source)
43
+ else
44
+ temp_file.puts line
45
+ end
46
+ end
47
+ end
48
+ temp_file.close
49
+ FileUtils.mv(temp_file.path, podfile)
50
+ ensure
51
+ temp_file.close
52
+ temp_file.unlink
53
+ end
54
+ end
55
+
56
+ def generate_module_config(module_name, module_type, source)
57
+ module_config = ''
58
+ if ModuleType::PATH == module_type
59
+ module_config = %Q( pod '#{module_name}', :path => '#{source}')
60
+ elsif ModuleType::GIT == module_type
61
+ # puts source.base
62
+ # puts source.addition
63
+ if GitType::BRANCH == source.type
64
+ module_config = %Q( pod '#{module_name}', :git => '#{source.base}', :branch => '#{source.addition}')
65
+ elsif GitType::TAG == source.type
66
+ module_config = %Q( pod '#{module_name}', :git => '#{source.base}', :tag => '#{source.addition}')
67
+ elsif GitType::COMMIT == source.type
68
+ module_config = %Q( pod '#{module_name}', :git => '#{source.base}', :commit => '#{source.addition}')
69
+ else
70
+ module_config = %Q( pod '#{module_name}', :git => '#{source.base}')
71
+ end
72
+ else
73
+ module_config = %Q( pod '#{module_name}', '#{source}')
74
+ end
75
+ module_config
76
+ end
77
+
78
+ def generate_pod_config(pod_name, version,comment)
79
+ module_config = ''
80
+ if comment != nil
81
+ module_config = " pod '#{pod_name}' , '#{version}' # #{comment}"
82
+ else
83
+ module_config = " pod '#{pod_name}' , '#{version}'"
84
+ end
85
+ end
86
+
87
+ def replace_all_module_release(podfile, module_names, version)
88
+ module_names.each do |module_name|
89
+ PodfileOperator.new.find_and_replace(podfile,
90
+ module_name,
91
+ ModuleType::GIT,
92
+ GitInfo.new(BigkeeperParser.module_git(module_name), GitType::TAG, version))
93
+ end
94
+ end
95
+
96
+ def find_and_lock(podfile,dictionary)
97
+ temp_file = Tempfile.new('.Podfile.tmp')
98
+ begin
99
+ File.open(podfile, 'r') do |file|
100
+ file.each_line do |line|
101
+ pod_model = PodfileDetector.get_pod_model(line)
102
+ if pod_model != nil && pod_model.name != nil && dictionary[pod_model.name] != nil
103
+ # p "#{pod_name},#{dictionary[pod_name]}"
104
+ temp_file.puts generate_pod_config(pod_model.name,dictionary[pod_model.name],pod_model.comment)
105
+ else
106
+ temp_file.puts line
107
+ end
108
+ end
109
+ end
110
+ temp_file.close
111
+ FileUtils.mv(temp_file.path, podfile)
112
+ ensure
113
+ temp_file.close
114
+ temp_file.unlink
115
+ end
116
+ end
117
+
118
+ def find_and_upgrade(podfile,dictionary)
119
+ temp_file = Tempfile.new('.Podfile.tmp')
120
+ begin
121
+ File.open(podfile, 'r') do |file|
122
+ file.each_line do |line|
123
+ pod_model = PodfileDetector.get_pod_model(line)
124
+ if pod_model != nil && pod_model.name != nil && dictionary[pod_model.name] != nil
125
+ temp_file.puts generate_pod_config(pod_model.name,dictionary[pod_model.name],pod_model.comment)
126
+ else
127
+ temp_file.puts line
128
+ end
129
+ end
130
+ end
131
+ temp_file.close
132
+ FileUtils.mv(temp_file.path, podfile)
133
+ ensure
134
+ temp_file.close
135
+ temp_file.unlink
136
+ end
137
+ end
138
+
139
+ def podspec_change(podspec_file, version, module_name)
140
+ temp_file = Tempfile.new(".#{module_name}.podspec")
141
+ begin
142
+ File.open(podspec_file, 'r') do |file|
143
+ file.each_line do |line|
144
+ if line.include?("s.version")
145
+ temp_line = line
146
+ if temp_line.split("=")[0].delete(" ") == "s.version"
147
+ temp_file.puts "s.version = '#{version}'"
148
+ else
149
+ temp_file.puts line
150
+ end
151
+ else
152
+ temp_file.puts line
153
+ end
154
+ end
155
+ end
156
+ temp_file.close
157
+ FileUtils.mv(temp_file.path, podspec_file)
158
+ ensure
159
+ temp_file.close
160
+ temp_file.unlink
161
+ end
162
+ end
163
+
164
+ private :generate_module_config,:generate_pod_config
165
+ end
166
+ end
@@ -0,0 +1,13 @@
1
+ require 'big_keeper/util/logger'
2
+
3
+ module BigKeeper
4
+ class XcodeOperator
5
+ def self.open_workspace(path)
6
+ # Close Xcode
7
+ `pkill Xcode`
8
+
9
+ # Open home workspace
10
+ `open #{path}/*.xcworkspace`
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module BigKeeper
2
+ VERSION = "0.7.3"
3
+ end
Binary file
metadata ADDED
@@ -0,0 +1,311 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bigkeeper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.3
5
+ platform: ruby
6
+ authors:
7
+ - mmoaay
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gli
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.16'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: big_stash
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: cocoapods
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: plist
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: colorize
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.15'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.15'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '10.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '10.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: gli
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.16'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.16'
125
+ - !ruby/object:Gem::Dependency
126
+ name: big_stash
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.1'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: cocoapods
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: plist
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: colorize
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 0.50.0
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 0.50.0
195
+ description: Efficiency improvement for iOS modular development, iOSer using this
196
+ tool can make modular development easier.
197
+ email:
198
+ - mmoaay@sina.com
199
+ executables:
200
+ - big
201
+ - setup
202
+ extensions: []
203
+ extra_rdoc_files: []
204
+ files:
205
+ - ".github/ISSUE_TEMPLATE.md"
206
+ - ".gitignore"
207
+ - ".travis.yml"
208
+ - CODE_OF_CONDUCT.md
209
+ - CONTRIBUTING.md
210
+ - Gemfile
211
+ - Gemfile.lock
212
+ - LICENSE
213
+ - README.md
214
+ - Rakefile
215
+ - big_keeper.gemspec
216
+ - bin/big
217
+ - bin/setup
218
+ - docs/en-US/FEATURE.md
219
+ - docs/en-US/README.md
220
+ - docs/zh-CN/BIGKEEPER_FILE.md
221
+ - docs/zh-CN/FEATURE&HOTFIX.md
222
+ - docs/zh-CN/PODFILE.md
223
+ - docs/zh-CN/README.md
224
+ - docs/zh-CN/RECOMMEND.md
225
+ - docs/zh-CN/RELEASE.md
226
+ - lib/big_keeper.rb
227
+ - lib/big_keeper/command/feature&hotfix/delete.rb
228
+ - lib/big_keeper/command/feature&hotfix/finish.rb
229
+ - lib/big_keeper/command/feature&hotfix/pull.rb
230
+ - lib/big_keeper/command/feature&hotfix/push.rb
231
+ - lib/big_keeper/command/feature&hotfix/rebase.rb
232
+ - lib/big_keeper/command/feature&hotfix/start.rb
233
+ - lib/big_keeper/command/feature&hotfix/switch.rb
234
+ - lib/big_keeper/command/feature&hotfix/update.rb
235
+ - lib/big_keeper/command/pod/podfile.rb
236
+ - lib/big_keeper/command/release/home.rb
237
+ - lib/big_keeper/command/release/module.rb
238
+ - lib/big_keeper/model/gitflow_type.rb
239
+ - lib/big_keeper/model/operate_type.rb
240
+ - lib/big_keeper/model/podfile_model.rb
241
+ - lib/big_keeper/model/podfile_type.rb
242
+ - lib/big_keeper/service/git_service.rb
243
+ - lib/big_keeper/service/module_service.rb
244
+ - lib/big_keeper/service/stash_service.rb
245
+ - lib/big_keeper/util/bigkeeper_parser.rb
246
+ - lib/big_keeper/util/git_operator.rb
247
+ - lib/big_keeper/util/gitflow_operator.rb
248
+ - lib/big_keeper/util/info_plist_operator.rb
249
+ - lib/big_keeper/util/logger.rb
250
+ - lib/big_keeper/util/pod_operator.rb
251
+ - lib/big_keeper/util/podfile_detector.rb
252
+ - lib/big_keeper/util/podfile_module.rb
253
+ - lib/big_keeper/util/podfile_operator.rb
254
+ - lib/big_keeper/util/xcode_operator.rb
255
+ - lib/big_keeper/version.rb
256
+ - resources/banner.png
257
+ - resources/keynote/big-keeper-readme-example.key
258
+ - resources/keynote/big-keeper-readme-feature.key
259
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.001.jpeg
260
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.002.jpeg
261
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.003.jpeg
262
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.004.jpeg
263
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.005.jpeg
264
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.006.jpeg
265
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.007.jpeg
266
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.008.jpeg
267
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.009.jpeg
268
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.010.jpeg
269
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.011.jpeg
270
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.012.jpeg
271
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.013.jpeg
272
+ - resources/keynote/big-keeper-readme-feature/big-keeper-readme-feature.014.jpeg
273
+ - resources/keynote/big-keeper-readme-release.key
274
+ - resources/readme/big-keeper-readme.001.png
275
+ - resources/readme/big-keeper-readme.002.png
276
+ - resources/readme/big-keeper-readme.003.png
277
+ - resources/readme/big-keeper-readme.004.png
278
+ - resources/readme/big-keeper-readme.005.png
279
+ - resources/readme/big-keeper-readme.006.png
280
+ - resources/readme/big-keeper-readme.007.png
281
+ - resources/readme/big-keeper-readme.008.png
282
+ - resources/readme/big-keeper-readme.009.png
283
+ - resources/readme/big-keeper-readme.010.png
284
+ - resources/readme/big-keeper-readme.011.png
285
+ - resources/readme/big-keeper-readme.012.png
286
+ homepage: https://github.com/BigKeeper/big-keeper
287
+ licenses:
288
+ - MIT
289
+ metadata:
290
+ allowed_push_host: https://rubygems.org
291
+ post_install_message:
292
+ rdoc_options: []
293
+ require_paths:
294
+ - lib
295
+ required_ruby_version: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ required_rubygems_version: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - ">="
303
+ - !ruby/object:Gem::Version
304
+ version: '0'
305
+ requirements: []
306
+ rubyforge_project:
307
+ rubygems_version: 2.5.1
308
+ signing_key:
309
+ specification_version: 4
310
+ summary: Efficiency improvement for iOS modular development.
311
+ test_files: []