drb_fileclient 0.5.2 → 0.6.3

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: 4bb18a2fe46c0d601bbfffee7c7cbd1ebed33586abe3241ca821fbbb2ac680c1
4
- data.tar.gz: e8812a2688db89ff2ecf0bd8d7ca8161cea0fe005592146239d66ae9c0c6bf69
3
+ metadata.gz: 11e459b03b12daa5f495705cfe50f05e054c273a31fc1e6f71ba919fc24070b3
4
+ data.tar.gz: 6b38f58bbdbff1b4da1129f70087cb2c7f60454d9ad4a7b9d44300a5a93eaa17
5
5
  SHA512:
6
- metadata.gz: 9cbb3e0ed60f00426e83f31f10fd0c2962ffa2da2c1ea5043ee0f5c7cc98d1f9f53e2a17a8598e4e5a616e78c6a6d3bc052b20657d112c8b8d04d61bc115ae9b
7
- data.tar.gz: a6847f771d944cb5c2c0ac904b8bc889b4ed2cca762489fa126b9d3cb84ed6dd5b6250d4aa3c9e296e469cd5ce4ca6cb7891ded0bb4099933585b5ad2833220a
6
+ metadata.gz: 21558c01a3e3d3bbfa7e8c5d409d36d8575c844607a3904189e02554a24cc8c5c887d5663c3677399d2ddca44dae17b29f58ec3eac934b6dd22939db8fcdce56
7
+ data.tar.gz: 0eb1319c6eead463b8ada4b4cf45b29bb0fb6a3b5ac0121d3d7261b30a162887d1f8f96e32c0c7f6a8d69a81db7690628b8c60f48c6c6c7a0ea8b4345821e2eb
checksums.yaml.gz.sig CHANGED
Binary file
@@ -11,89 +11,113 @@ class DRbFileClient
11
11
  using ColouredText
12
12
 
13
13
  def initialize(location=nil, host: nil, port: '61010', debug: false)
14
-
14
+
15
15
  @debug = debug
16
-
16
+
17
17
  if location then
18
-
18
+
19
19
  host = location[/(?<=^dfs:\/\/)[^\/:]+/]
20
20
  port = location[/(?<=^dfs:\/\/)[^:]+:(\d+)/,1] || '61010'
21
21
  @directory = location[/(?<=^dfs:\/\/)[^\/]+\/(.*)/,1]
22
-
22
+
23
23
  end
24
-
24
+
25
25
  DRb.start_service
26
-
26
+
27
27
  end
28
-
28
+
29
29
  def chdir(raw_path)
30
-
30
+
31
31
  return Dir.chdir raw_path unless @directory or raw_path =~ /^dfs:\/\//
32
-
32
+
33
33
  if raw_path[0] == '/' then
34
34
  directory = raw_path[1..-1]
35
35
  elsif raw_path =~ /^dfs:\/\//
36
36
  @file, directory = parse_path(raw_path)
37
- else
37
+ else
38
38
  directory = File.join(@directory, raw_path)
39
- end
40
-
39
+ end
40
+
41
41
  if @file.exists? directory then
42
42
  @directory = directory
43
43
  else
44
44
  'No such file or directory'
45
45
  end
46
-
46
+
47
+ end
48
+
49
+ def chmod(permissions, raw_path)
50
+
51
+ if raw_path =~ /^dfs:\/\// then
52
+
53
+ @file, path = parse_path(raw_path)
54
+ @file.chmod permissions, path
55
+
56
+ else
57
+ return FileUtils.chmod(permissions, raw_path)
58
+ end
47
59
  end
48
60
 
49
61
  def cp(raw_path, raw_path2)
50
-
62
+
51
63
  puts 'inside cp'.info if @debug
52
-
64
+
53
65
  if raw_path =~ /^dfs:\/\// then
54
-
66
+
55
67
  if @debug then
56
68
  puts ('raw_path: ' + raw_path.inspect).debug
57
69
  puts ('raw_path2: ' + raw_path2.inspect).debug
58
70
  end
59
-
71
+
60
72
  if raw_path[/^dfs:\/\/([^\/]+)/] == raw_path2[/^dfs:\/\/([^\/]+)/] then
61
-
73
+
62
74
  _, path = parse_path(raw_path)
63
75
  @file, path2 = parse_path(raw_path2)
64
76
  @file.cp path, path2
65
-
66
- else
67
-
77
+
78
+ elsif raw_path2[/^dfs:\/\//]
79
+
68
80
  @file, path = parse_path(raw_path)
69
81
  file2, path2 = parse_path(raw_path2)
82
+ puts ('path: ' + path.inspect).debug if @debug
83
+ puts ('path2: ' + path.inspect).debug if @debug
70
84
  content = @file.read path
71
-
85
+
72
86
  file2.write path2, content
73
87
 
88
+ else
89
+
90
+ @file, path = parse_path(raw_path)
91
+ #file2, path2 = parse_path(raw_path2)
92
+ puts ('path: ' + path.inspect).debug if @debug
93
+ puts ('path2: ' + path2.inspect).debug if @debug
94
+ content = @file.read path
95
+
96
+ File.write raw_path2, content
97
+
74
98
  end
75
-
99
+
76
100
  elsif raw_path2 =~ /dfs:\/\// then
77
-
101
+
78
102
  puts 'option2'.info if @debug
79
-
103
+
80
104
  file2, path2 = parse_path(raw_path2)
81
105
  puts ('path2: ' + path2.inspect).debug if @debug
82
106
  file2.write path2, File.read(raw_path)
83
-
107
+
84
108
  else
85
-
109
+
86
110
  puts 'option3'.info if @debug
87
111
  FileUtils.cp raw_path, raw_path2
88
-
89
- end
90
-
91
- end
92
-
93
- def directory?(filename=@filename)
94
-
112
+
113
+ end
114
+
115
+ end
116
+
117
+ def directory?(filename=@filename)
118
+
95
119
  return File.directory? filename unless @directory or filename =~ /^dfs:\/\//
96
-
120
+
97
121
  if filename =~ /^dfs:\/\// then
98
122
  @file, filename2 = parse_path(filename)
99
123
  else
@@ -102,13 +126,13 @@ class DRbFileClient
102
126
  end
103
127
 
104
128
  @file.directory?(filename2)
105
-
106
- end
107
-
108
- def exists?(filename=@filename)
109
-
129
+
130
+ end
131
+
132
+ def exists?(filename=@filename)
133
+
110
134
  return File.exists? filename unless @directory or filename =~ /^dfs:\/\//
111
-
135
+
112
136
  if filename =~ /^dfs:\/\// then
113
137
  @file, filename2 = parse_path(filename)
114
138
  else
@@ -117,136 +141,180 @@ class DRbFileClient
117
141
  end
118
142
 
119
143
  @file.exists?(filename2)
120
-
144
+
121
145
  end
122
-
146
+
123
147
  alias exist? exists?
124
-
148
+
149
+ def glob(s)
150
+
151
+ if s =~ /^dfs:\/\// then
152
+ @file, s2 = parse_path(s)
153
+ else
154
+ s2 = File.join(@directory, s)
155
+ end
156
+
157
+ @file.glob s2
158
+
159
+ end
160
+
125
161
  def ls(raw_path)
126
-
162
+
127
163
  return Dir[raw_path] unless @directory or raw_path =~ /^dfs:\/\//
128
-
164
+
129
165
  if raw_path[0] == '/' then
130
166
  path = raw_path[1..-1]
131
167
  elsif raw_path =~ /^dfs:\/\//
132
168
  @file, path = parse_path(raw_path)
133
- else
169
+ else
134
170
  path = File.join(@directory, raw_path)
135
- end
136
-
171
+ end
172
+
137
173
  @file.ls path
138
-
139
- end
140
-
174
+
175
+ end
176
+
141
177
  def mkdir(name)
142
-
178
+
143
179
  return FileUtils.mkdir name unless @directory or name =~ /^dfs:\/\//
144
-
180
+
145
181
  @file, path = parse_path(name)
146
182
  @file.mkdir path
147
183
  end
148
-
184
+
149
185
  def mkdir_p(raw_path)
150
-
186
+
151
187
  unless @directory or raw_path =~ /^dfs:\/\// then
152
- return FileUtils.mkdir_p raw_path
153
- end
154
-
188
+ return FileUtils.mkdir_p raw_path
189
+ end
190
+
155
191
  if raw_path =~ /^dfs:\/\// then
156
192
  @file, filepath = parse_path(raw_path)
157
193
  else
158
194
  filepath = File.join(@directory, raw_path)
159
195
  end
160
-
196
+
161
197
  @file.mkdir_p filepath
162
- end
163
-
198
+ end
199
+
164
200
  def mv(raw_path, raw_path2)
165
-
201
+
166
202
  unless @directory or raw_path =~ /^dfs:\/\// then
167
- return FileUtils.mv raw_path, raw_path2
203
+ return FileUtils.mv raw_path, raw_path2
168
204
  end
169
-
205
+
170
206
  if raw_path =~ /^dfs:\/\// then
171
207
  _, path = parse_path(raw_path)
172
208
  else
173
209
  path = File.join(@directory, raw_path)
174
210
  end
175
-
211
+
176
212
  if raw_path2 =~ /^dfs:\/\// then
177
213
  _, path2 = parse_path(raw_path2)
178
214
  else
179
215
  path2 = File.join(@directory, raw_path2)
180
216
  end
181
-
217
+
182
218
  @file.mv path, path2
183
- end
184
-
219
+ end
220
+
185
221
  def pwd()
186
-
222
+
187
223
  return Dir.pwd unless @directory
188
-
224
+
189
225
  '/' + @directory if @file
190
-
191
- end
226
+
227
+ end
192
228
 
193
229
  def read(filename=@filename)
194
-
230
+
195
231
  return File.read filename, s unless @directory or filename =~ /^dfs:\/\//
196
-
232
+
197
233
  if filename =~ /^dfs:\/\// then
198
234
  @file, path = parse_path(filename)
199
235
  else
200
236
  path = File.join(@directory, filename)
201
237
  end
202
-
238
+
203
239
  @file.read path
204
240
  end
205
-
241
+
206
242
  def rm(path)
207
-
243
+
208
244
  return FileUtils.rm path unless @directory or path =~ /^dfs:\/\//
209
-
245
+
210
246
  if path =~ /^dfs:\/\// then
211
247
  @file, path2 = parse_path( path)
212
248
  else
213
249
  path2 = File.join(@directory, path)
214
250
  end
215
-
251
+
216
252
  @file.rm path2
217
-
218
- end
219
-
253
+
254
+ end
255
+
256
+ def rm_r(path, force: false)
257
+
258
+ unless @directory or path =~ /^dfs:\/\// then
259
+ return FileUtils.rm_r(path, force: force)
260
+ end
261
+
262
+ if path =~ /^dfs:\/\// then
263
+ @file, path2 = parse_path( path)
264
+ else
265
+ path2 = File.join(@directory, path)
266
+ end
267
+
268
+ @file.rm_r(path2, force: force)
269
+
270
+ end
271
+
272
+ def touch(s, mtime: Time.now)
273
+
274
+ unless @directory or s =~ /^dfs:\/\// then
275
+ return FileUtils.touch(s, mtime: mtime)
276
+ end
277
+
278
+ if s =~ /^dfs:\/\// then
279
+ @file, s2 = parse_path(s)
280
+ else
281
+ s2 = File.join(@directory, s)
282
+ end
283
+
284
+ @file.touch s2, mtime: mtime
285
+
286
+ end
287
+
220
288
  def write(filename=@filename, s)
221
-
289
+
222
290
  return File.write filename, s unless @directory or filename =~ /^dfs:\/\//
223
-
291
+
224
292
  if filename =~ /^dfs:\/\// then
225
293
  @file, path = parse_path(filename)
226
294
  else
227
295
  path = File.join(@directory, filename)
228
296
  end
229
-
230
- @file.write path, s
231
-
297
+
298
+ @file.write path, s
299
+
232
300
  end
233
-
301
+
234
302
  def zip(filename_zip, a)
235
-
303
+
236
304
  puts '@directory: ' + @directory.inspect if @debug
237
-
305
+
238
306
  unless @directory or filename_zip =~ /^dfs:\/\// then
239
-
307
+
240
308
  Zip::File.open(zipfile_zip, Zip::File::CREATE) do |x|
241
309
 
242
- a.each do |filename, buffer|
310
+ a.each do |filename, buffer|
243
311
  x.get_output_stream(filename) {|os| os.write buffer }
244
312
  end
245
313
 
246
314
  end
247
-
315
+
248
316
  end
249
-
317
+
250
318
  if filename_zip =~ /^dfs:\/\// then
251
319
  @file, filepath = parse_path(filename_zip)
252
320
  else
@@ -254,16 +322,16 @@ class DRbFileClient
254
322
  end
255
323
 
256
324
  @file.zip filepath, a
257
-
325
+
258
326
  end
259
327
 
260
328
  private
261
-
329
+
262
330
  def parse_path(filename)
263
331
 
264
332
  host = filename[/(?<=^dfs:\/\/)[^\/:]+/]
265
333
  @host = host if host
266
-
334
+
267
335
  port = filename[/(?<=^dfs:\/\/)[^:]+:(\d+)/,1] || '61010'
268
336
 
269
337
  file_server = DRbObject.new nil, "druby://#{host || @host}:#{port}"
@@ -271,24 +339,35 @@ class DRbFileClient
271
339
 
272
340
  end
273
341
 
274
- end
342
+ end
275
343
 
276
344
  class DfsFile
277
-
345
+
278
346
  @client = DRbFileClient.new
279
-
280
- def self.directory?(filename) @client.directory?(filename) end
281
- def self.exists?(filename) @client.exists?(filename) end
282
- def self.chdir(path) @client.chdir(path) end
283
- def self.cp(path, path2) @client.cp(path, path2) end
284
- def self.ls(path) @client.ls(path) end
285
- def self.mkdir(name) @client.mkdir(name) end
286
- def self.mkdir_p(path) @client.mkdir_p(path) end
287
- def self.mv(path, path2) @client.mv(path, path2) end
288
- def self.pwd() @client.pwd() end
347
+
348
+ def self.directory?(filename) @client.directory?(filename) end
349
+ def self.exists?(filename) @client.exists?(filename) end
350
+ def self.chdir(path) @client.chdir(path) end
351
+ def self.chmod(num, filename) @client.chmod(num, filename) end
352
+ def self.cp(path, path2) @client.cp(path, path2) end
353
+ def self.glob(s) @client.glob(s) end
354
+ def self.ls(path) @client.ls(path) end
355
+ def self.mkdir(name) @client.mkdir(name) end
356
+ def self.mkdir_p(path) @client.mkdir_p(path) end
357
+ def self.mv(path, path2) @client.mv(path, path2) end
358
+ def self.pwd() @client.pwd() end
289
359
  def self.read(filename) @client.read(filename) end
290
- def self.rm(filename) @client.rm(filename) end
360
+ def self.rm(filename) @client.rm(filename) end
361
+
362
+ def self.rm_r(filename, force: false)
363
+ @client.rm_r(filename, force: force)
364
+ end
365
+
366
+ def self.touch(filename, mtime: Time.now)
367
+ @client.touch(filename, mtime: mtime)
368
+ end
369
+
291
370
  def self.write(filename, s) @client.write(filename, s) end
292
371
  def self.zip(filename, a) @client.zip(filename, a) end
293
-
372
+
294
373
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drb_fileclient
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwMjE4MTMyMjE4WhcN
15
- MjAwMjE4MTMyMjE4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDPLIWE
17
- 1LxL0Rs9thm/+dEKOLimLGMrg805TqNbDMVg3zSxx/hu5DDgZw+kZxHBrhdAOGgL
18
- N9q1wHikBL3KRBlfpZn6DLL1J6RxsJmTEdhEY0IGT1sVlNYnW3IYK9nfaeJccSAA
19
- Siqt1Wg2T7O6UOTq3jg4qWSp7jT8W/CYeN+drJNvTPXf5mlBcgWhzbCJLjAMdMoG
20
- tEiBzlAGs5ys/6jk9JDVK/ll3QGq5ldzVmW+eV6z54MIXJTBRZKf43Eb5h28BNa5
21
- MoWLdj2T0nKApQDnJjwbsKdb0qq5wOAbvz49NgGfEt+azogI2DFst3JC6tt62E1C
22
- i1/6+xD70d5NpiQQlui027F8JdQbyk+3k8JMDKEI/mx+SWw41wvy1+wjiGm18X2y
23
- PC2h2eGzDdS1Rf+RwYnmw4hwmsMysEnuJyy3odhmiuYL64Uj7GKGmFuigkff2pui
24
- FSuSFUAZVcaFpqjozYvREn1iQiYCsbTs/zu1Hwyz5oZHsLlpI+J5iF6IsxkCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUZflEC5fi
26
- H1TSltk+4vyAjijZuQ0wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMTE3MjExMTUxWhcN
15
+ MjMwMTE3MjExMTUxWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC1sfsT
17
+ Jfjs0K5yhTPZsHAcniDvpZsgsTzASYu0IbH63AZ1o3dBV7IzF6KrziLoJ4LZ7UQK
18
+ yJ6PnHUSTKBZJccpxIErNb3YlU3wYhF4aFqVxZBjt/IWVyGk62GtgbkuFGcsC2DP
19
+ sxL4/WYtZvSrDCnY/XDEK8LUO6/MQ6cF2aT3OHmXSz3zuDW83yuIWrTXbKJnjuKn
20
+ V7zM0prSGfLGNM+DlIgAGrspj+D+aofhVZ1vcsy7tHHSazErTtp88ONCoJrBv8UZ
21
+ Zw+fZV14rwhqftK7jYH0XL7kBZYILVkpehNXRFOwojnkg/Z6IECYxz2alNYwDWUB
22
+ lPzxgCPJsHoQCtustc2UHE/Ik+8QVJIHimpwquzhwECGq9MSUlYau48XlB8nBHlN
23
+ 3YckYd3CjdbB/4UkCjlQOBrb0UT7HQHm+f5uCa2hXKkpWFKJNO99FBR75FAJWbQt
24
+ JfYUJzGrp2z95pc6cDvaqzXPVA48JVVWF6uUqCeoVOCcz3rISfZT5X6Y+I8CAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUWpxb19+x
26
+ FM42Y6G5h22m4V4WOQ8wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAehovpYSCjyALI2nsoZgOXuhu2FLJqUQBuoJ71qhb
29
- Taqk2GGL7H3rw+230F7JFa6+mEDhvPRtPpvFouUWCVkWt/cFjCSi6wMtPtWI1npX
30
- Z24Rq7o4qhnGnNOgF4GUIAB9wKkuGpHpGu3Pm6sSsoY53RSdOIrUbATq7d9R+nDC
31
- IuHsUhqWu0JHuIcJAt2nFdNhpAM1xI8xmpBB/ZAPmuBgCIGACRUj9zDwCcvQTexg
32
- VpPvUCkhqF2HslhSBvMt0uWior6rx2NF1XjLcaNZ3D/RYODI+c8bzGuG/kiy49T1
33
- GiV9YurS5UW2Pbpy6GnkvDWNOGwV3SuIeVzo0kcGh/O4zRzC0UHWXzfMshQZq+vj
34
- jYmP2hJqU6kqXV8nvKfwDTVov3W49/Nx2NgvhKFga4gMlwRryZCYpWSNJ/2PnKke
35
- Q2NfvYKLI+E2SiA6gvWccHs5PVlVg/BMshm3jnuqHGeuzxtSivRoTcRKfedcs6CL
36
- NlXQCltmwWchk+xRD5gmICCy
28
+ BgkqhkiG9w0BAQsFAAOCAYEAoKkYN6WZurnK5O9oEqj+ugBPm9Gh5I75oLQCUyIw
29
+ sHsBR0clXN+Lta4plvzonH3xKx9ddzX+KWZS0tHxcm072zV6sKEKFYcQiUzQyTwc
30
+ Hyfp6E3950UwJi3KO4o3RPZC1U5/fOvnuZgVAbGqcJQf/t/SfD5M3pBymbK2QszM
31
+ fG8W6bQ2kbkv7JbD3B0Sjb1eCDy3/s/eMmbjl1Wg48al1LWQDUMGAmadqLrnFEs0
32
+ 3arfhEofWPCcGw0u45L6omLCU8VWJFupyvQKDwEmkVAD9MMbnUuIsMWMkW4qFwl4
33
+ 0xIrbpFWN8ZHrlc29DrrNH9IKcgsI6Fmc4jOxrqnlushuHG3uthM1hGChljvOMaB
34
+ rs55jJl1U2ICzKSTmV28mLdtigYtJHOzuXrdZSLICM9FSvRkBWOnBz2YaDCA2NXP
35
+ FGcgjmmz5fOIqq2sBxk6JW1yo2G43yIUzymWOYKT2Jh6RR0Gg3z66wWwYpFpx8yR
36
+ 00JTBNVAgW+s2sLpeBtyMDbb
37
37
  -----END CERTIFICATE-----
38
- date: 2019-04-29 00:00:00.000000000 Z
38
+ date: 2022-02-09 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: zip
@@ -61,24 +61,24 @@ dependencies:
61
61
  name: c32
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: '0.1'
67
64
  - - ">="
68
65
  - !ruby/object:Gem::Version
69
- version: 0.1.2
66
+ version: 0.3.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.3'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '0.1'
77
74
  - - ">="
78
75
  - !ruby/object:Gem::Version
79
- version: 0.1.2
76
+ version: 0.3.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.3'
80
80
  description:
81
- email: james@jamesrobertson.eu
81
+ email: digital.robertson@gmail.com
82
82
  executables: []
83
83
  extensions: []
84
84
  extra_rdoc_files: []
@@ -103,7 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubygems_version: 3.0.1
106
+ rubyforge_project:
107
+ rubygems_version: 2.7.10
107
108
  signing_key:
108
109
  specification_version: 4
109
110
  summary: Reads or writes files from a remote DRb server. Simple as DfsFile.read or
metadata.gz.sig CHANGED
Binary file