furion 1.0.9 → 1.0.10

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: 88af458021bc7618aeda209a06c96fefe324857cc36284d40aaf6ffe9e1a0a4f
4
- data.tar.gz: 92100ff9ec52165dae9a1933d113e35b3fc483c6b716f253a1b8e13b6e71d633
3
+ metadata.gz: 33e050630738005972a285c19d87fae626442832a08048feec1d27406d628f1f
4
+ data.tar.gz: '068fa164b18a1d937ffb31269c217fec0031c24e9c96fc6a47c25556a7e40ad1'
5
5
  SHA512:
6
- metadata.gz: 866e8db42a8585fdb0e3b9176fa9a974663033fce27d3fbfa213551b044713a9c757286022e367edffa3b24257c7b9b152bd3df01212e7f8a6ceb5c535413c76
7
- data.tar.gz: fba8475942b5e2b374635a68c8df43bcb287f062b6e4920869fb52261eb73ced1b2e7b0a0d5463cfa4b4dd52e1e77f1b970fbd3198942fa53c0778a9d195e2fe
6
+ metadata.gz: 80f2baf81d9f32d026a3188b275ecbb2c771712c1b6470222aaeeb4a76f91559acb456f866204975d46a5f1d4f903b418665deddb18e2cbe729ca49962a4e159
7
+ data.tar.gz: 8a0b25c6ed61ee1e34e14ad0f27688de12e5e7ef5d12cf2a3b98f32c287db672d65888d9680109f8d6538ae7ca39921476546a87d38603023ec3f218d880e8a0
data/bin/furion CHANGED
@@ -13,10 +13,11 @@ OptionParser.new do |opts|
13
13
  -h : print the help message
14
14
  init : run wrapper-pick work flow in existed project
15
15
  update : update the config of sdk-wrapper
16
+ create
16
17
  "
17
18
  end
18
19
  opts.on("-v", "--version", "Prints version") do |dh|
19
- puts "1.0.9"
20
+ puts "1.0.9.1"
20
21
  end
21
22
 
22
23
 
@@ -26,6 +27,26 @@ if ARGV[0] == "init"
26
27
  Furion.makeConfig
27
28
  end
28
29
 
30
+ if ARGV[0] == "create"
31
+ name = ARGV[1]
32
+ if name == nil
33
+ puts "please input project name"
34
+ else
35
+ if name.length > 1
36
+ Furion.genProj(name)
37
+ puts Dir.pwd
38
+ Dir.chdir name
39
+ puts Dir.pwd
40
+ Furion.makeConfig
41
+ system("open .")
42
+ else
43
+ puts "project name too short "
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+
29
50
  if ARGV[0] == "confdet"
30
51
  Furion.detectConflict
31
52
  end
data/lib/furion.rb CHANGED
@@ -4,7 +4,9 @@ require 'json'
4
4
  require 'plist'
5
5
  require 'open-uri'
6
6
  require 'furion/file_editor'
7
+ require 'zip'
7
8
  require 'furion/ver_conflict_detector'
9
+ require 'furion/project_generate'
8
10
  class Furion
9
11
 
10
12
  def self.fetchFile(fileName)
@@ -73,6 +75,16 @@ class Furion
73
75
  ConflictDetector.detectConflict
74
76
  end
75
77
 
78
+ def self.genProj(name)
79
+ fileName = "FurionExample.zip"
80
+ self.fetchFile(fileName)
81
+ system("unzip", fileName)
82
+ File.delete(fileName)
83
+ ProjectGenerater.setupProject("FurionExample",name)
84
+ FileUtils.rm_rf("FurionExample")
85
+ end
86
+
87
+
76
88
  def self.runCMD
77
89
  cmd = ARGV[0]
78
90
  if cmd == "init"
@@ -84,3 +96,5 @@ class Furion
84
96
  end
85
97
  end
86
98
  end
99
+
100
+
@@ -0,0 +1,63 @@
1
+
2
+ $placeHolderStr = "FurionExample"
3
+ $createInfo = "// Created by $AUTHOR on $DATE."
4
+ $copyrightInfo = "// Copyright © $YEAR $PROJECT. All rights reserved."
5
+ $zipCodeUri = "https://git.huya.com/chenguohao2/FurionTemplateResource/raw/master/iOS/FurionExample.zip"
6
+ class ProjectGenerater
7
+
8
+ def self.fetchExampleCode
9
+
10
+ end
11
+
12
+ def self.setupProject(projPath,newName)
13
+ Find.find(projPath) do |path|
14
+ puts "[o]"+path
15
+ newPath = path.gsub($placeHolderStr,newName)
16
+ puts "[*]"+newPath
17
+ if File.file?(path)
18
+ copyUpdateFile(path,newPath,$placeHolderStr,newName)
19
+ else
20
+ Dir.mkdir(newPath)
21
+ end
22
+ end
23
+ end
24
+
25
+
26
+ def self.copyUpdateFile(oldPath,newPath,oldName,newName)
27
+ File.open(newPath, "w") do |out|
28
+ File.foreach(oldPath) do |line|
29
+
30
+ content = self.updateCopyRight(line,newName)
31
+ content = self.updateCreatedInfo(content)
32
+ if content.include?oldName
33
+ newLine = content.gsub(oldName,newName)
34
+ out.puts newLine
35
+ else
36
+ out.puts content
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ def self.updateCopyRight(content,projName)
43
+ if content.include? $copyrightInfo
44
+ current_year = Time.new.year
45
+ year_content = content.sub("$YEAR",String(current_year))
46
+ result = year_content.sub("$PROJECT",projName)
47
+ return result
48
+ end
49
+ return content
50
+ end
51
+
52
+ def self.updateCreatedInfo(content)
53
+ if content.include? $createInfo
54
+ curTime = Time.now.strftime("%Y/%m/%d")
55
+ time_content = content.sub("$DATE",curTime)
56
+ author = Etc.getpwuid(Process.uid).name
57
+ result = time_content.sub("$AUTHOR",author)
58
+ return result
59
+ end
60
+ return content
61
+ end
62
+
63
+ end
@@ -1,5 +1,8 @@
1
1
  require 'cocoapods'
2
2
  require 'etc'
3
+ require 'net/http'
4
+ require 'digest/sha1'
5
+ require 'date'
3
6
  class ConflictDetector
4
7
  def self.detectConflict
5
8
  @openingSpec = []
@@ -7,6 +10,7 @@ class ConflictDetector
7
10
  # dict = Plist::parse_xml("MTPSDK.plist")
8
11
  file = File.read('sdkConfig.json')
9
12
  dict = JSON.parse(file)
13
+
10
14
  # "sdk":{"hypushsdk": {"wrapperVersion": "0.1.13-dev", "sdkVersion": "*", "wrapper": "pushsdk-wrapper"}
11
15
  sdkDict = {}
12
16
  sdkWrapperDict = dict["sdk"]
@@ -58,7 +62,6 @@ class ConflictDetector
58
62
 
59
63
  if path.length == 0
60
64
  # 如果在wrapper也没找到就说明找不到
61
- puts "[FurionError]:spec load Error in "+path
62
65
  return
63
66
  end
64
67
 
@@ -69,13 +72,21 @@ class ConflictDetector
69
72
  return
70
73
  end
71
74
 
75
+ dependencies = ret.dependencies
76
+
77
+ for spec in ret.subspecs
78
+ subDependencies = spec.dependencies
79
+ for item in subDependencies
80
+ dependencies.append(item)
81
+ end
82
+ end
72
83
 
73
- for item in ret.dependencies
84
+ for item in dependencies
74
85
  requireStr = String(item.requirement)
75
86
  self.recordDependancy(item.name,requireStr,specName)
76
87
  if self.isVersionSpecific(requireStr) == 0
77
- content = self.wrapSpecificVersion(requireStr)
78
- self.readSpecFromRepo(item.name,content)
88
+ content = self.wrapSpecificVersion(requireStr) # 去掉空格和等号,只剩下大于/小于
89
+ self.loadSpec(item.name,content)
79
90
  end
80
91
  end
81
92
  end
@@ -107,12 +118,6 @@ class ConflictDetector
107
118
  return content
108
119
  end
109
120
 
110
- def self.readSpecFromRepo(specName,version)
111
-
112
-
113
-
114
- self.loadSpec(specName,version)
115
- end
116
121
 
117
122
 
118
123
  def self.getSpecFromSDK(groupPath,sdkName,version)
@@ -189,6 +194,7 @@ class ConflictDetector
189
194
  else
190
195
  if min == max
191
196
  if containMax == 0 || containMin == 0
197
+
192
198
  isConflict = 1
193
199
  end
194
200
  end
@@ -233,7 +239,7 @@ class ConflictDetector
233
239
  end
234
240
 
235
241
  varNumArray2 = String(otherVersion).split("-")
236
- verNum2 = varNumArray1[0]
242
+ verNum2 = varNumArray2[0]
237
243
  if varNumArray2.length() > 1
238
244
  verExt2 = varNumArray2[1]
239
245
  else
@@ -241,10 +247,11 @@ class ConflictDetector
241
247
  end
242
248
 
243
249
 
244
- if Gem::Version.new(verNum1) > Gem::Version.new(otherVersion)
250
+ if Gem::Version.new(verNum1) > Gem::Version.new(verNum2)
251
+
245
252
  return 1
246
253
  else
247
- if Gem::Version.new(verNum1) == Gem::Version.new(otherVersion)
254
+ if Gem::Version.new(verNum1) == Gem::Version.new(verNum2)
248
255
  if verExt1 == '*' && verExt2 != '*'
249
256
  return 1
250
257
  end
@@ -253,7 +260,36 @@ class ConflictDetector
253
260
  return 0
254
261
  end
255
262
 
256
- def self.getLastVersionFromDir(dirPath)
257
263
 
264
+
265
+ # clientType=1&name=yome&projectCode=yome&type=1
266
+ def self.requestVersionDependancy
267
+
268
+ Find.find(Dir::pwd) do |path|
269
+ puts path
270
+ end
271
+
272
+ appId = "mtpwebservices"
273
+ token = "43010711d680a54c"
274
+ time = DateTime.now.strftime('%Q')
275
+ content = token + appId + String(time)
276
+ puts content
277
+ sign = Digest::SHA1.hexdigest(content)
278
+ url = URI('http://aplus.local.web.hy/open-api/1.0/dependency/get?')
279
+ # 设置请求参数
280
+ params = {'clientType':0,'type':1}
281
+ url.query = URI.encode_www_form(params)
282
+ puts url
283
+ http = Net::HTTP.new(url.host, url.port)
284
+
285
+
286
+ # 设置请求头
287
+ header = {'X-APLUS-APP':appId,
288
+ 'X-APLUS-SIGN':sign,
289
+ 'X-APLUS-TS':String(time)}
290
+ puts header
291
+
292
+ response = http.get(url, header)
293
+ puts response.body
258
294
  end
259
295
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furion
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - MTP Huya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-21 00:00:00.000000000 Z
11
+ date: 2019-12-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: MTP Huya is the best!!!
14
14
  email: mtphuya@yandex.com
@@ -20,6 +20,7 @@ files:
20
20
  - bin/furion
21
21
  - lib/furion.rb
22
22
  - lib/furion/file_editor.rb
23
+ - lib/furion/project_generate.rb
23
24
  - lib/furion/ver_conflict_detector.rb
24
25
  homepage: https://rubygems.org/gems/furion
25
26
  licenses: