VictoriaFreSh 2020.7.30 → 2020.7.38

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: 78b9a5be98cca9663603cff168291eb02a63eb429ad3a4f8575037f8ddc05a31
4
- data.tar.gz: 29aab5b992fa884e53d2ee529ec9cb30db298e45c9394be588df5af92966ed12
3
+ metadata.gz: a39fedfddb83014e92fd898251a01010a116a89766dddb607dd9ac10d98fd470
4
+ data.tar.gz: aa1df0393ee1fb5b7c9cb127e62c9413cec9cd16984547baa0271aa4fbd0398d
5
5
  SHA512:
6
- metadata.gz: eccc46f251ca80e27f120d36f047613649a1423fde9ceb0bade67ed7f40d1d0d7b814825b372817c0d3cc5a5fb96796cbd20f6b7334624daeb22b814d2d2b6a9
7
- data.tar.gz: 0e19df7de8314c4b3ba263941d23e4d0019203f7a79d1c48e206fb2012406fae793bbebd348e4d197269343c8fc0f120ce492cec9aebb41debc963a9dccd95cf
6
+ metadata.gz: 890dd1f57aa777c450ac052007375f3c36519b9dd3e6e116f8f5bd9a3caa3c1874d9f58d4b0657211b18b1f15073cc7006d6f680f7cf3259f2299ca4b30cccf3
7
+ data.tar.gz: 6e3fb87d0f7e9e431027c6dfd44b86b7634593322391509e29151080747967493ff37aded92bcda98dc84cbbc004d3923b1421068be3f27c88d506e7dbd91e75
@@ -1,11 +1,14 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
3
  require 'pathname'
4
- require File.dirname(__FILE__)+'/VictoriaFreSh/filemessage_pb.rb'
4
+ require 'fileutils'
5
+ require 'cbor'
6
+
7
+ # require File.dirname(__FILE__)+'/VictoriaFreSh/filemessage_pb.rb'
5
8
 
6
9
  class VictoriaFresh
7
10
  def releaseFiles(victoriaFreshPackagedFileString, contentString) #释放目录树
8
- packagedFile=FileMessage.decode(victoriaFreshPackagedFileString) #解码文件消息对象。
11
+ packagedFile=Com::Stupidbeauty::Victoriafresh::FileMessage.decode(victoriaFreshPackagedFileString) #解码文件消息对象。
9
12
 
10
13
  puts packagedFile #Debug
11
14
 
@@ -13,15 +16,35 @@ class VictoriaFresh
13
16
  end #def releaseFiles(victoriaFreshPackagedFile, contentString) #释放目录树
14
17
 
15
18
  def writeFile(pathPrefix, packagedFile, contentString) #写入文件
19
+
20
+ timeObject=getTimeObject(packagedFile) #构造时间戳对象
21
+
16
22
  victoriaFreshData=contentString[packagedFile.file_start_index, packagedFile.file_length] #获取内容
17
23
 
18
- victoriaFreshDataFile=File.new(pathPrefix + '/' + packagedFile.name , "wb") #数据文件。
24
+ pathToMake=pathPrefix + '/' + packagedFile.name #构造文件名
25
+
26
+ victoriaFreshDataFile=File.new(pathToMake , "wb") #数据文件。
19
27
  victoriaFreshDataFile.syswrite(victoriaFreshData) #写入文件。
20
28
  victoriaFreshDataFile.close #关闭文件。
21
29
 
30
+ FileUtils.touch pathToMake, :mtime => timeObject #设置修改时间
31
+
22
32
  end #writeFile(pathPrefix, packagedFile, contentString) #写入文件
23
33
 
34
+ def getTimeObject(packagedFile) #构造时间戳对象
35
+ puts packagedFile.timestamp #Debug
36
+
37
+ seconds=packagedFile.timestamp.seconds #获取秒数
38
+ microSeconds=packagedFile.timestamp.nanos/ 1000.0 #获取毫秒数
39
+
40
+ timeObject=Time.at(seconds, microSeconds) #构造时间对象
41
+
42
+ end #getTimeObject(packagedFile) #构造时间戳对象
43
+
24
44
  def makeDirectory(pathPrefix, packagedFile) #创建目录
45
+ timeObject=getTimeObject(packagedFile) #构造时间戳对象
46
+
47
+
25
48
  puts 'mkdir' #Debug
26
49
 
27
50
  pathToMake=File.join(pathPrefix, packagedFile.name)
@@ -34,6 +57,8 @@ class VictoriaFresh
34
57
  end #if (Dir.exist?(pathToMake)) #目录已经存在
35
58
 
36
59
 
60
+ FileUtils.touch pathToMake, :mtime => timeObject #设置修改时间
61
+
37
62
  end #makeDirectory(pathPrefix, packagedFile) #创建目录
38
63
 
39
64
  def releaseFile( pathPrefix, packagedFile, contentString) #释放一个文件
@@ -58,33 +83,52 @@ class VictoriaFresh
58
83
  end #def releaseFile(packagedFile, contentString) #释放一个文件
59
84
 
60
85
  def checkOnce(directoryPath,startIndex=0) #打包一个目录树。
61
- packagedFile=Com::Stupidbeauty::Victoriafresh::FileMessage.new #创建文件消息对象。
86
+ # packagedFile=Com::Stupidbeauty::Victoriafresh::FileMessage.new #创建文件消息对象。
87
+ packagedFile={} #创建文件消息对象。
88
+
62
89
  # packagedFile.sub_files=[] #初始化数组。
90
+ packagedFile['sub_files'] = [] #加入到子文件列表中。
91
+
92
+ # packagedFile.sub_files=Google::Protobuf::RepeatedField.new(Com::Stupidbeauty::Victoriafresh::FileMessage, []) #初始化数组
93
+ # packagedFile.sub_files=Google::Protobuf::RepeatedField.new(Google::Protobuf::DescriptorPool.generated_pool.lookup("com.stupidbeauty.victoriafresh.FileMessage").msgclass, []) #初始化数组
63
94
 
64
- packagedFile.sub_files=Google::Protobuf::RepeatedField.new(Com::Stupidbeauty::Victoriafresh::FileMessage, []) #初始化数组
65
95
 
66
96
  directoryPathName=Pathname.new(directoryPath) #构造路径名字对象。
67
97
 
68
98
  baseName=directoryPathName.basename.to_s #基本文件名。
69
99
 
70
- packagedFile.name=baseName #设置文件名。
100
+ # packagedFile.name=baseName #设置文件名。
101
+ packagedFile['name']=baseName #设置文件名。
71
102
 
72
103
  isFile=directoryPathName.file? #是否是文件。
73
- packagedFile.is_file=isFile #设置属性,是否是文件。
74
- packagedFile.file_start_index=startIndex #记录文件内容的开始位置。
104
+
105
+ # packagedFile.is_file=isFile #设置属性,是否是文件。
106
+ packagedFile['is_file']=isFile #设置属性,是否是文件。
107
+
108
+ # packagedFile.file_start_index=startIndex #记录文件内容的开始位置。
109
+ packagedFile['file_start_index']=startIndex #记录文件内容的开始位置。
75
110
 
76
111
 
77
112
  #记录时间戳:
78
113
  mtimeStamp=File.mtime(directoryPath) #获取时间戳
79
- puts direcotryPath #Dbug.
114
+ puts directoryPath #Dbug.
80
115
  puts mtimeStamp #Debug
116
+ puts mtimeStamp.tv_sec #Debug
117
+ puts mtimeStamp.tv_nsec #Debug
118
+
119
+ # packagedFile.timestamp=Google::Protobuf::Timestamp.new #时间戳
120
+ packagedFile['timestamp']={} #时间戳
121
+
122
+ # packagedFile.timestamp.seconds=mtimeStamp.tv_sec #设置秒数
123
+ packagedFile['timestamp']['seconds']=mtimeStamp.tv_sec #设置秒数
81
124
 
82
- packagedFile.timestamp={} #时间戳
83
- packagedFile.timestamp.seconds=mtimeStamp.tv_sec #设置秒数
84
- packagedFile.timestamp.nanos=mtimeStamp.tv_nsec #设置纳秒数
125
+
126
+ # packagedFile.timestamp.nanos=mtimeStamp.tv_nsec #设置纳秒数
127
+ packagedFile['timestamp']['nanos']=mtimeStamp.tv_nsec #设置纳秒数
85
128
 
86
129
  if (isFile) #是文件,不用再列出其子文件了。
87
- packagedFile.file_length=directoryPathName.size #记录文件的内容长度。
130
+ # packagedFile.file_length=directoryPathName.size #记录文件的内容长度。
131
+ packagedFile['file_length']=directoryPathName.size #记录文件的内容长度。
88
132
 
89
133
  #读取文件内容:
90
134
  fileToReadContent=File.new(directoryPath,"rb") #创建文件。
@@ -93,7 +137,9 @@ class VictoriaFresh
93
137
  else #是目录。
94
138
  contentString="" #容纳内容的字符串。
95
139
  subFileStartIndex=startIndex #子文件的起始位置,以此目录的起始位置为基准。
96
- packagedFile.file_length=0 #本目录的内容长度。
140
+
141
+ # packagedFile.file_length=0 #本目录的内容长度。
142
+ packagedFile['file_length']=0 #本目录的内容长度。
97
143
 
98
144
  directoryPathName.each_child do |subFile| #一个个文件地处理。
99
145
  realPath=subFile.realpath #获取绝对路径。
@@ -101,13 +147,16 @@ class VictoriaFresh
101
147
 
102
148
  packagedSubFile,subFileContent=checkOnce(realPath,subFileStartIndex) #打包这个子文件。
103
149
 
104
- packagedFile.sub_files << packagedSubFile #加入到子文件列表中。
150
+ # packagedFile.sub_files << packagedSubFile #加入到子文件列表中。
151
+ packagedFile['sub_files'] << packagedSubFile #加入到子文件列表中。
105
152
 
106
153
  contentString = contentString + subFileContent #串接文件内容。
107
154
 
108
- subFileStartIndex+=packagedSubFile.file_length #记录打包的子文件的长度,更新下一个要打包的子文件的起始位置。
155
+ # subFileStartIndex+=packagedSubFile.file_length #记录打包的子文件的长度,更新下一个要打包的子文件的起始位置。
156
+ subFileStartIndex+=packagedSubFile['file_length'] #记录打包的子文件的长度,更新下一个要打包的子文件的起始位置。
109
157
 
110
- packagedFile.file_length+=packagedSubFile.file_length #随着子文件的打包而更新本目录的总长度。
158
+ # packagedFile.file_length+=packagedSubFile.file_length #随着子文件的打包而更新本目录的总长度。
159
+ packagedFile['file_length']+=packagedSubFile['file_length'] #随着子文件的打包而更新本目录的总长度。
111
160
  end #directoryPathName.each_child do |subFile| #一个个文件地处理。
112
161
  end #if (isFile) #是文件,不用再列出其子文件了。
113
162
 
@@ -1,8 +1,7 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- # require 'pathname'
4
- # require File.dirname(__FILE__)+'/filemessage.pb.rb'
5
- require 'victoriafresh'
3
+ # require 'victoriafresh'
4
+ require File.dirname(__FILE__)+'/lib/victoriafresh'
6
5
 
7
6
  if (ARGV.empty? ) #未指定命令行参数。
8
7
  else #指定了命令行参数。
@@ -14,7 +13,9 @@ else #指定了命令行参数。
14
13
 
15
14
  #利用protobuf打包成字节数组:
16
15
  replyByteArray="" #回复时使用的字节数组。
17
- victoriaFresh.encode(replyByteArray) #打包成字节数组。
16
+ # victoriaFresh.encode(replyByteArray) #打包成字节数组。
17
+ # replyByteArray=Com::Stupidbeauty::Victoriafresh::FileMessage.encode(victoriaFresh) ##打包成字节数组。
18
+ replyByteArray=victoriaFresh.to_cbor ##打包成字节数组。
18
19
 
19
20
  victoriaFreshFile=File.new("victoriafresh.v","wb") #创建文件。
20
21
  victoriaFreshFile.syswrite(replyByteArray) #写入文件。
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: VictoriaFreSh
3
3
  version: !ruby/object:Gem::Version
4
- version: 2020.7.30
4
+ version: 2020.7.38
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hxcan Cai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-30 00:00:00.000000000 Z
11
+ date: 2020-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: protobuf
14
+ name: cbor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.10'
19
+ version: 0.5.9
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.10.2
22
+ version: 0.5.9.6
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '3.10'
29
+ version: 0.5.9
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.10.2
32
+ version: 0.5.9.6
33
33
  description: Virtual file system.
34
34
  email: caihuosheng@gmail.com
35
35
  executables: []