cocoapods-privacy 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1138888b85b8d2e4eb857fc7bb3d86f305f8a414b79702a9e898da0c351b7f8
4
- data.tar.gz: e47d7800f08af2b3464f5dcf7cfb77c8e46961d2198acb4e12390df3eeff6df0
3
+ metadata.gz: 06cfd0105293d04c3f940b48b2a591daa1c361ddceeca67e4c19263984b5e5dd
4
+ data.tar.gz: bdbba9767ad2127bee8fbbbac60bd2b06adcd3471d29899f6f2a829582f68f06
5
5
  SHA512:
6
- metadata.gz: e3d5745b2c7c7eaa6cdffe1e9f11a6d6720a8b2fd56d6a7195b6176a99467f2462e5f3e4233d695148ebe38ef07f74ab92525f318bf930bf9dc806f0ba4dfedb
7
- data.tar.gz: 0caa4e0cfe57beadfdbf979bfe9712997e5b9d5193216204ee5eef51292d8d1638522d5f2bb892e978007fda675918cc0aff28688bc26a72fe0bfa55640904ee
6
+ metadata.gz: bc73b9f26811740f419e0519e34f765ee596e9bb52c17c8767866867d078d697c509a17cf0ee111a4ec8db755550d32b4fda4920cb67bcea3a747c48c218e0fa
7
+ data.tar.gz: 2142d38a2e33517f88c44b2108c5db12adc40467b95b4135a30692c28cad5c71a81c37b0f5ff34b8b1cfb74823785c4f64b5a8d86960fab385788f77f5ecde93
@@ -1,3 +1,3 @@
1
1
  module CocoapodsPrivacy
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -29,7 +29,7 @@ class BBRow
29
29
  end
30
30
 
31
31
  class BBSpec
32
- attr_accessor :name, :alias_name, :full_name, :rows, :privacy_sources, :privacy_file
32
+ attr_accessor :name, :alias_name, :full_name, :parent, :rows, :privacy_sources, :privacy_file
33
33
 
34
34
  def initialize(name,alias_name,full_name)
35
35
  @rows = []
@@ -40,6 +40,23 @@ class BBSpec
40
40
  @privacy_file = "Pod/Privacy/#{full_name}/PrivacyInfo.xcprivacy"
41
41
  end
42
42
 
43
+
44
+ def uniq_full_name_in_parent(name)
45
+ names = []
46
+ @rows.each_with_index do |line, index|
47
+ if line && line.is_a?(BBSpec)
48
+ names << line.name
49
+ end
50
+ end
51
+
52
+ #判断names 中是否包含 name,如果包含,那么给name 添加一个 “.diff” 后缀,一直到names 中没有包含name为止
53
+ while names.include?(name)
54
+ name = "#{name}.diff"
55
+ end
56
+
57
+ "#{@full_name}.#{name}"
58
+ end
59
+
43
60
  def privacy_handle(podspec_file_path)
44
61
  source_files_index = 1
45
62
  @rows.each_with_index do |line, index|
@@ -137,7 +154,9 @@ module PrivacyModule
137
154
 
138
155
  # 如果不存在引用,创建新的引入xcode引用
139
156
  if resources_group.find_file_by_path(PrivacyUtils.privacy_name).nil?
140
- resources_group.new_reference(PrivacyUtils.privacy_name)
157
+ privacy_file_ref = resources_group.new_reference(PrivacyUtils.privacy_name)
158
+ target = project.targets.first
159
+ target.add_file_references([privacy_file_ref]) # 将文件引用添加到 target 中
141
160
  # resources_group.new_file(privacy_file_path)
142
161
  end
143
162
 
@@ -196,17 +215,23 @@ module PrivacyModule
196
215
 
197
216
  def self.parse_row(lines)
198
217
  rows = []
199
- if_stack = [] #排除if end 干扰
218
+ code_stack = [] #栈,用来排除if end 等对spec 的干扰
219
+
200
220
  lines.each do |line|
201
221
  content = line.strip
202
222
  is_comment = content.start_with?('#')
203
223
  is_spec_start = !is_comment && (content.include?('Pod::Spec.new') || content.include?('.subspec'))
204
224
  is_if = !is_comment && content.start_with?('if')
205
225
  is_end = !is_comment && content.start_with?('end')
226
+
206
227
  # 排除if end 对spec_end 的干扰
207
- if_stack.push(true) if is_if
208
- is_spec_end = if_stack.empty? && is_end
209
- if_stack.pop if is_end
228
+ code_stack.push('spec') if is_spec_start
229
+ code_stack.push('if') if is_if
230
+ stack_last = code_stack.last
231
+ is_spec_end = is_end && stack_last && stack_last == 'spec'
232
+ is_if_end = is_end && stack_last && stack_last == 'if'
233
+ code_stack.pop if is_spec_end || is_if_end
234
+
210
235
  row = BBRow.new(line, is_comment, is_spec_start, is_spec_end)
211
236
  rows << row
212
237
  end
@@ -236,15 +261,20 @@ module PrivacyModule
236
261
 
237
262
  rows.each do |row|
238
263
  if row.is_spec_start
264
+ # 获取父spec
265
+ parent_spec = spec_stack.last
266
+
239
267
  # 创建 spec
240
268
  name = row.content.split("'")[1]&.strip || default_name
241
269
  alias_name = row.content.split("|")[1]&.strip
242
- full_name = spec_stack.empty? ? name : "#{spec_stack.last.full_name}.#{name}"
270
+ full_name = parent_spec ? parent_spec.uniq_full_name_in_parent(name) : name
271
+
243
272
  spec = BBSpec.new(name,alias_name,full_name)
244
273
  spec.rows << row
274
+ spec.parent = parent_spec
245
275
 
246
276
  # 当存在 spec 时,存储在 spec.rows 中;不存在时,直接存储在外层
247
- (spec_stack.empty? ? result_rows : spec_stack.last.rows) << spec
277
+ (parent_spec ? parent_spec.rows : result_rows ) << spec
248
278
 
249
279
  # spec 入栈
250
280
  spec_stack.push(spec)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-privacy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - youhui