cocoapods-tag 0.0.1 → 0.0.4

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: 0fc5297e51950ca49c7e6862bcd9ccaa7707c88b1568df30ed32cc165cb05d48
4
- data.tar.gz: adf8df13f96690d4d98eeb08d801d7570f255eabc8d16ad395ccfb71d7815fd5
3
+ metadata.gz: ab723fa1e07606d3664af7a1ec85aacd255a2782722be6c733d727f86f1e47d9
4
+ data.tar.gz: eefc4e3111d15c9504ca69e894aff85a76ba8531aff01028fdb52f75e1068173
5
5
  SHA512:
6
- metadata.gz: 9cd6328f564dcfe676bd940258a0a1d8701ecc1eff4451fa856c6808cb64d475d2659db869424ee316ecdcb589533ee37b045dfb1ea1b3a2b779c5cadb715713
7
- data.tar.gz: 1e83a70c3ea110853d6fa97ef376cd121848567ec681b08949de3c0f2bde6e6b14fd660abbd4313de613523d72f6848baeb08b8a884d746841aba3b9584c59b2
6
+ metadata.gz: 8f7a3e6579264821c391fcd54a23fd5a9fea86ce3344b176a951825578d57a3a52b5b5c9e085b1e879bde0511f4d29c5fdcb82bb9001bf6cc6689fac1e1d1092
7
+ data.tar.gz: a282fea1a342b38eea54357ac0967910bf8a428dceae26b77a0616198a066b660baf339ac4d3ca1ef2599f0c81302c568039797e05fcff426fc4ee46be0c991e
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## 简介
2
2
 
3
- `cocoapods-tag`是一个可以方便地帮助Pod库打tag的`CocoaPods`插件,插件采用问答的方式提示用户输入相应内容,简单、方便、快捷。
3
+ `cocoapods-tag`是一个可以方便地帮助Pod库打tag的`CocoaPods`插件。
4
4
 
5
5
  ## 安装
6
6
 
@@ -12,25 +12,73 @@ $ gem install cocoapods-tag
12
12
 
13
13
  * 查看帮助
14
14
 
15
- ```shell
16
- $ pod tag --help
17
- ```
15
+ ```shell
16
+ $ pod tag --help
17
+ $ pod tag auto --help
18
+ ```
18
19
 
19
- * 创建tag并push到远端,并询问是否上传podspec到spec repo
20
+ * 使用默认tag信息,如tag为“0.1.7”,那么tag信息为”v0.1.7“
20
21
 
21
- ```shell
22
- $ pod tag
23
- # 或
24
- $ pod tag create
25
- ```
22
+ ```shell
23
+ $ pod tag 0.1.7 "修改podspec版本号为0.1.7"
24
+ ```
26
25
 
27
- * 上传podspec到spec repo
26
+ * 使用自定义tag信息
28
27
 
29
- ```shell
30
- $ pod tag spec-push REPO NAME.podspec
31
- ```
28
+ ```shell
29
+ $ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7"
30
+ ```
31
+
32
+ * 推送`podspec`到指定的`spec repo`
33
+
34
+ ```shell
35
+ $ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --spec-repo=xxx
36
+ ```
37
+
38
+ * 跳过耗时校验
39
+
40
+ ```shell
41
+ $ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --spec-repo=xxx --quick
42
+ ```
43
+
44
+ * 指定tag推送到的远端仓库(可以通过`git remote -v`查看)
32
45
 
33
- ## 演示gif
46
+ ```shell
47
+ $ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --remote=origin
48
+ ```
49
+
50
+ * 指定工作目录(插件执行的目录)
51
+
52
+ ```shell
53
+ $ pod tag 0.1.7 "修改podspec版本号为0.1.7" --work-dir=xxx
54
+ ```
55
+
56
+ * 为tag添加前后缀**(前后缀与版本号中间会自动用`-`分隔,不需要手动添加)**
57
+
58
+ 以下面这行命令为例,`podspec`中的`version`为`0.1.7`,`source`字段中的`tag`为`mtxx-0.1.7-beta1`,最终推送到远端仓库的`tag`也是`mtxx-0.1.7-beta1`
59
+
60
+ ```shell
61
+ $ pod tag 0.1.7 "修改podspec版本号为0.1.7" --prefix="mtxx" --suffix="beta1"
62
+ ```
63
+
64
+ * 单独推送`podspec`到指定`spec repo`
65
+
66
+ ```shell
67
+ $ pod tag spec-push REPO NAME.podspec
68
+ ```
69
+
70
+ > 如有疑问,请使用`pod tag auto --help`查看帮助信息,里面有每个字段的解释
71
+
72
+ ## 版本号
73
+
74
+ `CocoaPods`对版本号是有校验的,如果不符合规则当推送`podspec`到`spec repo`时会校验失败,具体校验正则如下:
75
+
76
+ ```ruby
77
+ VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?'
78
+ ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/
79
+ ```
34
80
 
35
- <img src='./cocoapods-tag.gif' width='100%' />
81
+ 大概解释一下就是:以`数字0-9`开头,中间可以包含`数字0-9`、`字母a-z A-Z`,特殊字符只能包含`.`和`-`,版本号前后可以有`0个或多个空格`
36
82
 
83
+ > 1. `cocoapods-tag`已经对版本号做了正则校验,不符合上面正则的版本号是无法通过的,这里写出来主要是为了提醒大家注意版本号的规范
84
+ > 2. 不建议版本号前后加空格
@@ -0,0 +1,85 @@
1
+ require 'cocoapods-tag/tag'
2
+
3
+ module Pod
4
+ class Command
5
+ class Tag < Command
6
+ class Auto < Tag
7
+ include Pod
8
+
9
+ self.summary = '创建 tag 并 push 到远端仓库,同时可以上传 podspec 到 spec repo'
10
+
11
+ self.description = <<-DESC
12
+ #{self.summary}
13
+
14
+ `VERSION`: podspec中的version字段,如果没有prefix和suffix,version与tag一样【必填】\n
15
+ `COMMIT_MSG`: commit信息【必填】\n
16
+ `TAG_MSG`: tag信息【可选,默认为"v[tag号]",比如:tag是"0.0.1",则tag信息是"v0.0.1"】\n
17
+
18
+ e.g.\n
19
+ 1.使用默认tag信息\n
20
+ pod tag 0.1.7 "修改podspec版本号为0.1.7"\n
21
+ 2.使用自定义tag信息\n
22
+ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7"\n
23
+ 3.推送podspec到spec repo\n
24
+ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --spec-repo=xxx\n
25
+ 4.跳过耗时校验\n
26
+ pod tag 0.1.7 "修改podspec版本号为0.1.7" "版本0.1.7" --quick\n
27
+ 5.指定工作目录\n
28
+ pod tag 0.1.7 "修改podspec版本号为0.1.7" --work-dir=xxx\n
29
+ 6.为tag指定前后缀\n
30
+ pod tag 0.1.7 "修改podspec版本号为0.1.7" --prefix="xxx" --suffix="xxx"\n
31
+ 7.指定tag推送到的远端仓库\n
32
+ pod tag 0.1.7 "修改podspec版本号为0.1.7" --remote=xxx
33
+ DESC
34
+
35
+ self.arguments = [
36
+ CLAide::Argument.new('VERSION', true ),
37
+ CLAide::Argument.new('COMMIT_MSG', true),
38
+ CLAide::Argument.new('TAG_MSG', false)
39
+ ]
40
+
41
+ def self.options
42
+ [
43
+ ['--quick', '跳过一些耗时校验,如:远端仓库是否已经有该tag'],
44
+ ['--remote=REMOTE', '指定tag推送到的远端仓库,可以通过`git remote -v`查看'],
45
+ ['--spec-repo=SPECREPO', 'podspec推送到的repo,可以通过`pod repo list`查看'],
46
+ ['--work-dir=WORKDIR', '执行命令的工作区'],
47
+ ['--prefix=PREFIX', 'tag前缀'],
48
+ ['--suffix=SUFFIX', 'tag后缀']
49
+ ].concat(super)
50
+ end
51
+
52
+ def initialize(argv)
53
+ @version = argv.shift_argument
54
+ @commit_msg = argv.shift_argument
55
+ @tag_msg = argv.shift_argument
56
+ @quick = argv.flag?('quick', false)
57
+ @remote = argv.option('remote', false)
58
+ @spec_repo = argv.option('spec-repo', nil)
59
+ @work_dir = argv.option('work-dir', nil)
60
+ @prefix = argv.option('prefix', nil)
61
+ @suffix = argv.option('suffix', nil)
62
+ @tag = @version
63
+ unless @prefix.nil?
64
+ @tag = "#{@prefix}-#{@tag}"
65
+ end
66
+ unless @suffix.nil?
67
+ @tag = "#{@tag}-#{@suffix}"
68
+ end
69
+ super
70
+ end
71
+
72
+ def run
73
+ # 传入了工作目录
74
+ unless @work_dir.nil?
75
+ raise Informative, "不存在工作目录`#{@work_dir}`" unless File.exist?(@work_dir)
76
+ Dir.chdir(@work_dir)
77
+ end
78
+ tag = Pod::Tag.new(@version, @tag, @commit_msg, @tag_msg, @spec_repo, @quick, @remote)
79
+ tag.create
80
+ end
81
+
82
+ end
83
+ end
84
+ end
85
+ end
@@ -10,7 +10,7 @@ module Pod
10
10
  GIT_REPO = ".git".freeze
11
11
  PODSPEC_EXT = %w[podspec podspec.json].freeze
12
12
 
13
- self.summary = '创建 tag 并 push 到远端仓库,同时可以上传 podspec 到 spec repo'
13
+ self.summary = '【问答的方式】创建 tag 并 push 到远端仓库,同时可以上传 podspec 到 spec repo'
14
14
 
15
15
  self.description = <<-DESC
16
16
  #{self.summary}
@@ -241,13 +241,13 @@ module Pod
241
241
  print "推送commit到远端git仓库`#{@remote}/#{current_branch}`失败:#{e}".red
242
242
  end
243
243
 
244
- print "\n创建tag:#{@tag}并推送至远端:\n".yellow
244
+ print "\n创建tag:`#{@tag}`并推送至远端:\n".yellow
245
245
  begin
246
246
  `git tag -a #{@tag} -m #{@tag_msg}`
247
247
  `git push #{@remote} --tags`
248
248
  rescue Pod::StandardError => e
249
249
  @error = e
250
- print "创建tag:#{@tag}并推送至远端失败:#{e}".red
250
+ print "创建tag:`#{@tag}`并推送至远端失败:#{e}".red
251
251
  end
252
252
  end
253
253
 
@@ -1,4 +1,5 @@
1
- require 'cocoapods-tag/command/tag/create'
1
+ require 'cocoapods-tag/command/tag/auto'
2
+ # require 'cocoapods-tag/command/tag/create'
2
3
  require 'cocoapods-tag/command/tag/spec_push'
3
4
 
4
5
  module Pod
@@ -6,7 +7,7 @@ module Pod
6
7
  class Tag < Command
7
8
 
8
9
  self.abstract_command = true
9
- self.default_subcommand = 'create'
10
+ self.default_subcommand = 'auto'
10
11
 
11
12
  self.summary = '🚀 方便地帮助 pod 库打 tag'
12
13
  self.description = <<-DESC
@@ -1,3 +1,3 @@
1
1
  module CocoapodsTag
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,295 @@
1
+ require 'cocoapods-tag/helper/asker'
2
+
3
+ module Pod
4
+ class Tag
5
+ include Pod
6
+
7
+ GITHUB_DOMAIN = "github.com".freeze
8
+ GIT_REPO = ".git".freeze
9
+ PODSPEC_EXT = %w[podspec podspec.json].freeze
10
+
11
+ def initialize(version, tag, commit_msg, tag_msg, spec_repo = nil, quick = false, remote_name = nil)
12
+ @version = version || raise(Informative, "缺少必填参数`version`")
13
+ @tag = tag || raise(Informative, "缺少必填参数`tag`")
14
+ @commit_msg = commit_msg || raise(Informative, "缺少必填参数`commit_msg`")
15
+ @tag_msg = tag_msg || "v#{@tag}"
16
+ @spec_repo = spec_repo
17
+ @quick = quick
18
+ @remote = remote_name
19
+ end
20
+
21
+ public
22
+
23
+ def create
24
+ require 'cocoapods-tag/native/validator'
25
+
26
+ # 欢迎语
27
+ welcome_message
28
+ # 正则校验版本号
29
+ check_version
30
+ # 检查本地是否有 spec_repo
31
+ check_spec_repo if @spec_repo
32
+ # 检查 git repo
33
+ check_git_repo
34
+ # 加载 podspec
35
+ load_podspec
36
+ # 修改前校验 podspec
37
+ lint_podspec("\n修改前校验`#{podspec}`\n")
38
+ # 修改 podspec
39
+ modify_podspec
40
+ # 修改后校验 podspec
41
+ lint_podspec("\n修改后校验`#{podspec}`\n")
42
+ # 推送 commit 到远端
43
+ git_commit_push
44
+ # 推送 tag 到远端
45
+ git_tag_push
46
+ # 推送 podspec 到 spec repo
47
+ push_podspec_to_repo if @spec_repo
48
+ # 结束语
49
+ done_message
50
+ end
51
+
52
+ private
53
+
54
+ def welcome_message
55
+ message = <<-MSG
56
+ 👏🏻欢迎使用 `cocoapods-tag` 插件👏🏻
57
+ 👏🏻version: #{CocoapodsTag::VERSION}👏🏻
58
+
59
+ MSG
60
+ print message.green
61
+ end
62
+
63
+ def done_message
64
+ print "\n🌺 恭喜你完成任务 🌺\n".green
65
+ end
66
+
67
+ # 正则校验版本号
68
+ def check_version
69
+ unless Pod::Vendor::Gem::Version.correct?(@version)
70
+ msg = <<-ERROR
71
+ 版本号`#{@version}`格式不正确
72
+ 版本号必须以数字`0-9`开头,可以包含数字`0-9`、字母`a-z A-Z`,特殊字符只能是`.`和`-`
73
+ 具体请参考CocoaPods校验版本号的正则:
74
+ #{Pod::Vendor::Gem::Version::ANCHORED_VERSION_PATTERN}
75
+ ERROR
76
+ raise Informative, msg
77
+ end
78
+ end
79
+
80
+ # 检查本地 spec_repo
81
+ def check_spec_repo
82
+ print "检查本地spec仓库\n".yellow
83
+ repos = `pod repo list`.split("\n").reject { |repo| repo == '' || repo =~ /^-/ }
84
+ unless repos.include?(@spec_repo)
85
+ raise Informative, "本地不存在`#{@spec_repo}`仓库,请先使用`pod repo add`添加该仓库或使用`pod repo list`查看其他仓库"
86
+ end
87
+ end
88
+
89
+ # 检查 git repo
90
+ def check_git_repo
91
+ print "检查本地git仓库\n".yellow
92
+
93
+ # 本地是否有 .git 目录
94
+ git_repo = File.join(Dir.pwd, GIT_REPO)
95
+ raise Informative, "`#{Dir.pwd}`不存在git仓库,请先使用`git init`初始化git仓库" unless File.exist?(git_repo)
96
+
97
+ # 是否与远端仓库关联
98
+ raise Informative, "本地git仓库没有与远端仓库关联,请先使用`git remote add`关联远端仓库" if remote.nil?
99
+
100
+ unless @quick
101
+ # 校验本地 git 是否与远端仓库同步
102
+ print "\n检查本地git仓库是否与远端仓库同步\n".yellow
103
+ local_commit = `git rev-parse #{remote}/HEAD`.chomp
104
+ remote_commit = `git ls-remote --head #{remote} #{current_branch}`.split("\t")[0]
105
+ unless local_commit == remote_commit
106
+ msg = <<-MSG
107
+ 本地git仓库没有与远端仓库同步,请先执行以下操作:
108
+ 1.`git pull`或`git fetch + git rebase`拉取最新代码
109
+ 2.`git push`推送本地仓库commit
110
+ MSG
111
+ raise Informative, msg
112
+ end
113
+
114
+ # 检查本地是否已经有该 tag
115
+ print "\n检查本地仓库是否有tag:`#{@tag}`\n".yellow
116
+ raise Informative, "本地已经存在tag:#{@tag}" if `git tag`.split("\n").include?(@tag)
117
+
118
+ # 判断远端是否已经有该 tag
119
+ print "\n检查远端仓库是否有tag:`#{@tag}`\n".yellow
120
+ tags = `git ls-remote --tags #{remote}`.split("\n").select { |tag| tag.include?("refs/tags/#{@tag}") }
121
+ raise Informative, "远端仓库已经有该tag:#{@tag}" unless tags.empty?
122
+ end
123
+
124
+ end
125
+
126
+ # 加载 podspec
127
+ def load_podspec
128
+ raise Informative, "`#{Dir.pwd}`不存在podspec" if podspec.nil?
129
+
130
+ @spec = Specification.from_file(podspec)
131
+ raise Informative, "加载`#{podspec}`失败!" if @spec.nil?
132
+
133
+ @spec_hash = @spec.to_hash
134
+ source = @spec_hash['source']
135
+ # 目前只处理 git 这种形式
136
+ unless source['git']
137
+ raise Informative, "目前只能处理`git`这种形式"
138
+ end
139
+ # git字段为空
140
+ if source['git'] && source['git'].strip == ''
141
+ raise Informative, "source中git字段不能为空"
142
+ end
143
+ end
144
+
145
+ # 修改podspec
146
+ def modify_podspec
147
+ return if podspec.nil?
148
+
149
+ print "\n修改`#{podspec}`\n".yellow
150
+ file = File.join(Dir.pwd, "#{podspec}")
151
+ # 匹配文件名后缀
152
+ if podspec =~ /.podspec$/
153
+ modify_podspec_ruby(file)
154
+ elsif podspec =~ /.podspec.json$/
155
+ modify_podspec_json(file)
156
+ end
157
+ print "`#{podspec}` modified done\n"
158
+ end
159
+
160
+ # 修改 *.podspec
161
+ def modify_podspec_ruby(file)
162
+ org_source = @spec_hash['source']
163
+ des_source = "{ :git => '#{org_source['git']}', :tag => '#{@tag}' }"
164
+ File.open(file, 'r') do |f|
165
+ lines = []
166
+ f.each_line do |line|
167
+ if line =~ /(^\s*.+\.version\s*=\s*).*/
168
+ line = line.sub(/(^\s*.+\.version\s*=\s*).*/, "#{$1}'#{@version}'")
169
+ end
170
+ if line =~ /(^\s*.+\.source\s*=\s*).*/
171
+ line = line.sub(/(^\s*.+\.source\s*=\s*).*/, "#{$1}#{des_source}")
172
+ end
173
+ lines << line
174
+ end
175
+ File.open(file, 'w') do |f|
176
+ f.write(lines.join(""))
177
+ end
178
+ end
179
+ end
180
+
181
+ # 修改 *.podspec.json
182
+ def modify_podspec_json(file)
183
+ @spec_hash['version'] = @version
184
+ @spec_hash['source'] = {
185
+ 'git'=> @spec_hash['source']['git'],
186
+ 'tag'=> "#{@tag}"
187
+ }
188
+ File.open(file, 'w') do |f|
189
+ f.write(@spec_hash)
190
+ end
191
+ end
192
+
193
+ # 推送 commit
194
+ def git_commit_push
195
+ print "\n推送commit到远端git仓库`#{remote}/#{current_branch}`\n".yellow
196
+ begin
197
+ `git add #{podspec}`
198
+ `git commit -m "#{@commit_msg}"`
199
+ `git push #{remote} #{current_branch}`
200
+ rescue Pod::StandardError => e
201
+ @error = e
202
+ print "推送commit到远端git仓库`#{remote}/#{current_branch}`失败:#{e}".red
203
+ end
204
+ end
205
+
206
+ # 推送 tag 到远端
207
+ def git_tag_push
208
+ print "\n创建tag:`#{@tag}`并推送至远端`#{remote}`\n".yellow
209
+ begin
210
+ `git tag -a #{@tag} -m "#{@tag_msg}"`
211
+ `git push #{remote} #{@tag}`
212
+ rescue Pod::StandardError => e
213
+ @error = e
214
+ print "创建tag:`#{@tag}`并推送至远端失败:#{e}".red
215
+ end
216
+ end
217
+
218
+ # 推送 podspec 到 spec repo
219
+ def push_podspec_to_repo
220
+ print "\n推送`#{podspec}`到`#{@spec_repo}`仓库\n".yellow
221
+ argvs = [
222
+ @spec_repo,
223
+ podspec,
224
+ '--allow-warnings'
225
+ ]
226
+ begin
227
+ push = Pod::Command::Repo::Push.new(CLAide::ARGV.new(argvs))
228
+ push.validate!
229
+ push.run
230
+ rescue Pod::StandardError => e
231
+ @error = e
232
+ print "推送`#{podspec}`到`#{@spec_repo}`仓库失败!#{e}".red
233
+ end
234
+ end
235
+
236
+ # 校验 podspec
237
+ def lint_podspec(tip = "\n校验`#{podspec}`\n")
238
+ print "#{tip}".yellow
239
+ argvs = [
240
+ podspec,
241
+ '--quick',
242
+ '--allow-warnings'
243
+ ]
244
+ lint = Pod::Command::Spec::Lint.new(CLAide::ARGV.new(argvs))
245
+ lint.validate!
246
+ lint.run
247
+ end
248
+
249
+ # 获取当前分支
250
+ def current_branch
251
+ @current_branch ||= begin
252
+ `git branch`.split(' ')[1]
253
+ end
254
+ end
255
+
256
+ # 获取当前目录下的 podspec
257
+ def podspec
258
+ @podspec ||= begin
259
+ podspec = nil
260
+ podspecs = Dir.glob("*.{#{PODSPEC_EXT.join(',')}}")
261
+ unless podspecs.empty?
262
+ podspec = podspecs.first
263
+ end
264
+ podspec
265
+ end
266
+ end
267
+
268
+ def asker
269
+ @asker ||= begin
270
+ Helper::Asker.new()
271
+ end
272
+ end
273
+
274
+ # 获取远端仓库名
275
+ def remote
276
+ @remote ||= begin
277
+ remote = nil
278
+ remotes = `git remote`.split("\n")
279
+ remote = remotes.first unless remotes.empty?
280
+ if remotes.size > 1
281
+ count = 0
282
+ selections = {}
283
+ remotes.map do |r|
284
+ count += 1
285
+ selections["#{count}"] = r
286
+ end
287
+ key = asker.ask("\n本地有多个关联的远端仓库,请选择:", true, nil, selections)
288
+ remote = remotes["#{key}".to_i - 1]
289
+ end
290
+ remote
291
+ end
292
+ end
293
+
294
+ end
295
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-tag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-06 00:00:00.000000000 Z
11
+ date: 2022-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods
@@ -64,11 +64,13 @@ files:
64
64
  - lib/cocoapods-tag.rb
65
65
  - lib/cocoapods-tag/command.rb
66
66
  - lib/cocoapods-tag/command/tag.rb
67
+ - lib/cocoapods-tag/command/tag/auto.rb
67
68
  - lib/cocoapods-tag/command/tag/create.rb
68
69
  - lib/cocoapods-tag/command/tag/spec_push.rb
69
70
  - lib/cocoapods-tag/gem_version.rb
70
71
  - lib/cocoapods-tag/helper/asker.rb
71
72
  - lib/cocoapods-tag/native/validator.rb
73
+ - lib/cocoapods-tag/tag.rb
72
74
  - lib/cocoapods_plugin.rb
73
75
  - spec/command/tag_spec.rb
74
76
  - spec/spec_helper.rb