cocoapods-dongjia 1.0.6 → 1.0.7

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: a829a90d465f2fa2b516712ac1edfe3f506688d30e664baf293648d7e507422f
4
- data.tar.gz: e9a465b31fc018f93536c558a27556607f7f4209ce0a6489f6729a858cb76fa4
3
+ metadata.gz: 8f3344d6aa8a82093be25e107fae8fdbc85978f62c37de24716bbc52f6e8adf9
4
+ data.tar.gz: 373230993613ea7c542a748b1047f54dc1d00b79b8f5d6738971b42b38036937
5
5
  SHA512:
6
- metadata.gz: d46f8cf9df65533ab6430e4cde63c8b10786390736053019f7e6f38c77fcac95c8de92b758668f41fc2a10d299f1a7d055898889e9698d813a941e650622f0d7
7
- data.tar.gz: b78824e850caf6f19aef7a713ad3a3f7a6ab144349abe26ac723b228f9e5f372976a520db6b644e6277b5f9a3f5400d14df134e3e160d4581c004c5a8e783c31
6
+ metadata.gz: 7c9404e7d325cf8dfaddad1ccaa28ddba2ff76b8165a1831282299f0243ec7ae9f583d865d92d56024f04ca7592673be8ba9e7f169ec995639a8ed3350e5efe8
7
+ data.tar.gz: 3b07c1adfeb8df3c8b975586b6474a0053c0c2a8d2e317fbcb216942cc788b65afa16ece34d8d41972d0e8402f697aaecb1382b06e85e67bb9b612b70a39c616
@@ -1,6 +1,6 @@
1
1
  module CocoapodsDongjia
2
- VERSION = "1.0.6"
2
+ VERSION = "1.0.7"
3
3
  UPDATE_DESC = <<-EOS
4
- - 关闭静态框架依赖传递的校验
4
+ - 添加路由信息汇总
5
5
  EOS
6
6
  end
@@ -3,6 +3,7 @@ require_relative 'dongjia_source'
3
3
  require_relative 'dongjia_branch_inspector'
4
4
  require_relative 'dongjia_enterprise_inspector'
5
5
  require_relative 'dongjia_warning_manager'
6
+ require_relative 'dongjia_router'
6
7
 
7
8
  require_relative 'helper/podfile_local_importer'
8
9
  require_relative 'helper/podfile_options'
@@ -37,6 +38,10 @@ module Dongjia
37
38
  files = EnterpriseInspector.inspect()
38
39
  Pod::UI.warn "文件未加入企业版:#{files}" if files.count > 0
39
40
 
41
+ # 抓取所有路由汇总至
42
+ router = Router.new
43
+ router.scrape_routers(ctx.sandbox_root, params[:scrap_routers])
44
+
40
45
  end
41
46
 
42
47
  end
@@ -0,0 +1,150 @@
1
+ require 'xcodeproj'
2
+ require 'fileutils'
3
+
4
+ module Dongjia
5
+
6
+ HEADER_CONTENT = <<-EOS
7
+ /**
8
+
9
+ 这里汇总了项目中所有的路由定义,方便日常开发中进行检索、版本比对等操作
10
+
11
+ 该文件会在每次 pod install 后,由 cocoapods-dongjia 插件自动生成,所以无需手动修改
12
+
13
+ 注意:此处的实现仅供查看,如需修改,请点击对应的 _redirect{type} 方法跳转至对应的实现
14
+
15
+ */
16
+
17
+
18
+ EOS
19
+
20
+ class RouterItem
21
+
22
+ attr_accessor :body
23
+ attr_accessor :redirect_type
24
+ attr_accessor :pre_line
25
+
26
+ def initialize(defining_line)
27
+ @defining_line = defining_line.strip
28
+ @body = ''
29
+ @prefix = nil
30
+ prefix_len = 0
31
+ if @defining_line.start_with?('@redirectObj(')
32
+ @prefix = 'redirectObj'
33
+ prefix_len = @prefix.length + 2
34
+ elsif @defining_line.start_with?('@redirect(')
35
+ @prefix = 'redirect'
36
+ prefix_len = @prefix.length + 2
37
+ end
38
+
39
+ if @prefix != nil
40
+ @redirect_type = @defining_line[prefix_len, @defining_line.index(',') - prefix_len]
41
+ end
42
+ end
43
+
44
+ def output
45
+ del_count = @defining_line.end_with?('{') ? 1 : 0
46
+ result = "#pregma mark - "
47
+ result << @defining_line[0, @defining_line.length - del_count].strip
48
+
49
+ if @pre_line && @pre_line.start_with?('/')
50
+ result << " " << @pre_line.gsub(/^\/+/, '').strip
51
+ end
52
+
53
+ result << "\n"
54
+ result << "_" << @prefix << @redirect_type << "\n"
55
+ result << (del_count == 1 ? "{\n" : "")
56
+ result << @body << "\n\n"
57
+ result
58
+ end
59
+ end
60
+
61
+ class Router
62
+
63
+ def route_items_from_file(path)
64
+ route_items = []
65
+ item = nil
66
+ File.open(path, 'r') do |file|
67
+ pre_line = nil
68
+ file.each_line do |line|
69
+ is_start = false
70
+ if line.start_with?('@redirect')
71
+ item = RouterItem.new(line)
72
+ item.pre_line = pre_line
73
+ is_start = true
74
+ elsif item != nil && line.start_with?('}')
75
+ item.body << line
76
+ route_items << item
77
+ item = nil
78
+ pre_line = nil
79
+ end
80
+ if item != nil
81
+ if !is_start
82
+ item.body << line
83
+ end
84
+ end
85
+ pre_line = line
86
+ end
87
+ end
88
+ route_items
89
+ end
90
+
91
+ def scrape_routers(sandbox_root, config)
92
+
93
+ if config == nil
94
+ return
95
+ end
96
+
97
+ result_file_path = ''
98
+ path = config[:path]
99
+ if path && path.length > 0
100
+ result_file_path = File.expand_path(File.join(sandbox_root, '..', path))
101
+ end
102
+ if !File.exist?(result_file_path)
103
+ Pod::UI.warn("Router scrapy: path not found.")
104
+ return
105
+ end
106
+
107
+ route_items = []
108
+
109
+ Dir.foreach(sandbox_root).select{|f| f.end_with?('xcodeproj')}.each do |name|
110
+ proj = Xcodeproj::Project.open(File.join(sandbox_root, name))
111
+ if name != 'Pods.xcodeproj'
112
+ proj.targets.each do |target|
113
+ next unless target.name.start_with?('DJ')
114
+ next unless target.is_a?(Xcodeproj::Project::Object::PBXNativeTarget)
115
+ target.source_build_phase.files_references.each do |file|
116
+ next if file.path.end_with?('Api.m')
117
+ next if file.path.end_with?('Model.m')
118
+ next if file.path.end_with?('-dummy.m')
119
+ next if file.path.end_with?('Log.m')
120
+ route_items += route_items_from_file(file.real_path)
121
+ end
122
+ end
123
+ end
124
+ end
125
+
126
+ # 排序
127
+ route_items.sort! do |a, b|
128
+ a.redirect_type.to_i <=> b.redirect_type.to_i
129
+ end
130
+
131
+ # 输出所有结果
132
+ result = HEADER_CONTENT
133
+ route_items.each do |item|
134
+ result += item.output
135
+ end
136
+
137
+ FileUtils.chmod('u+w', result_file_path)
138
+
139
+ File.open(result_file_path, 'w') do |f|
140
+ f.write(result)
141
+ end
142
+
143
+ # 将文件只读
144
+ FileUtils.chmod('ugo-w', result_file_path)
145
+
146
+ end
147
+
148
+ end
149
+
150
+ end
@@ -17,7 +17,7 @@ module Dongjia
17
17
  if v < latest_version
18
18
  update_desc = info['metadata']['update_desc']
19
19
  warnings = "cocoapods-dongjia #{latest_version} is available.\n\n"
20
- warnings << update_desc << "\n"
20
+ warnings << update_desc
21
21
  warnings << "To upgrade: [sudo] gem install cocoapods-dongjia\n"
22
22
  Pod::UI.warn warnings
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-dongjia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - jiangzhuoyi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-14 00:00:00.000000000 Z
11
+ date: 2019-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,7 @@ files:
66
66
  - lib/cocoapods_plugin.rb
67
67
  - lib/dongjia_branch_inspector.rb
68
68
  - lib/dongjia_enterprise_inspector.rb
69
+ - lib/dongjia_router.rb
69
70
  - lib/dongjia_source.rb
70
71
  - lib/dongjia_warning_manager.rb
71
72
  - lib/helper/dongjia_version_checker.rb
@@ -77,7 +78,7 @@ homepage: https://github.com/EXAMPLE/cocoapods-dongjia
77
78
  licenses:
78
79
  - MIT
79
80
  metadata:
80
- update_desc: " - 关闭静态框架依赖传递的校验\n"
81
+ update_desc: " - 添加路由信息汇总\n"
81
82
  post_install_message:
82
83
  rdoc_options: []
83
84
  require_paths: