bigkeeper 0.7.3

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 (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: []