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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/drb_fileclient.rb +191 -112
- data.tar.gz.sig +0 -0
- metadata +35 -34
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11e459b03b12daa5f495705cfe50f05e054c273a31fc1e6f71ba919fc24070b3
|
4
|
+
data.tar.gz: 6b38f58bbdbff1b4da1129f70087cb2c7f60454d9ad4a7b9d44300a5a93eaa17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21558c01a3e3d3bbfa7e8c5d409d36d8575c844607a3904189e02554a24cc8c5c887d5663c3677399d2ddca44dae17b29f58ec3eac934b6dd22939db8fcdce56
|
7
|
+
data.tar.gz: 0eb1319c6eead463b8ada4b4cf45b29bb0fb6a3b5ac0121d3d7261b30a162887d1f8f96e32c0c7f6a8d69a81db7690628b8c60f48c6c6c7a0ea8b4345821e2eb
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/drb_fileclient.rb
CHANGED
@@ -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
|
-
|
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.
|
284
|
-
def self.
|
285
|
-
def self.
|
286
|
-
def self.
|
287
|
-
def self.
|
288
|
-
def self.
|
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.
|
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
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
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:
|
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.
|
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.
|
76
|
+
version: 0.3.0
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0.3'
|
80
80
|
description:
|
81
|
-
email:
|
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
|
-
|
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
|