rxfreadwrite 0.1.2 → 0.2.0

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: 62d72dbfd84621d305b00946635142609412712280a7599af53ef4842cec1a77
4
- data.tar.gz: 5b12835da2134372f6264dbc10a0ccb450da111a31d3379d1bd5f1d30f944ba9
3
+ metadata.gz: 5ce3e2d94948e994649b37b42b231ff4a153b9966b34df1a52b5a4ab384dfe15
4
+ data.tar.gz: 62b36ab4f5b3a394ad8e022c5bea9cc6f6457411858c4d370c5653a14c6c6977
5
5
  SHA512:
6
- metadata.gz: '09fa98a6465a9ca7b63b7318732212d6eb0452571db8d66e5c726d5aade15b87c823710eae87074f328a31f2d0bf98209fd5e19fc4ae5f2fe821a71677fd2d83'
7
- data.tar.gz: 67f699c23379f6a72ddd8884ebc06a312cf4365798b511344501b25403699e3bf8a30017830d6d226689b28f9539dd1db128c9260ebc75afbfb1137a2de2ae89
6
+ metadata.gz: a37ea0d264edf3531b18e335b693d6e452d7f7a492e97dbf94211a321a751c53ed9b1880ebc1366fceb1992934e710ba8a733f7bc444675e5c9a6f3ae15a1a01
7
+ data.tar.gz: fe40d75490bdab065e8146f1de7e60a0b0b0f8c9c636f9bf22cbe80777d013e97a56dec7062a8d223bba4339a2a44d934d0e6d628917dabab7bd12a4ed6f0060
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/rxfreadwrite.rb CHANGED
@@ -3,81 +3,164 @@
3
3
  # file: rxfreadwrite.rb
4
4
 
5
5
  require 'rxfreader'
6
+ require 'drb_fileclient-readwrite'
6
7
 
7
8
 
8
9
  module RXFReadWriteModule
9
10
  include RXFRead
10
11
 
11
-
12
12
  class DirX
13
13
 
14
- def self.glob(s) RXFReadWrite.glob(s) end
14
+ def self.chdir(s) RXFReadWrite.chdir(s) end
15
+ def self.glob(s) RXFReadWrite.glob(s) end
16
+ def self.mkdir(s) RXFReadWrite.mkdir(s) end
17
+ def self.mkdir_p(s) RXFReadWrite.mkdir_p(s) end
15
18
 
16
19
  end
17
20
 
18
- def FileX.exists?(filename)
21
+ def FileX.chdir(s) RXFReadWrite.chdir(s) end
22
+ def FileX.mkdir(s) RXFReadWrite.mkdir(s) end
23
+ def FileX.mkdir_p(s) RXFReadWrite.mkdir_p(s) end
24
+ def FileX.rm(s) RXFReadWrite.rm(s) end
25
+
26
+ def FileX.rm_r(s, force: false)
27
+ RXFReadWrite.rm_r(s, force: force)
28
+ end
29
+
30
+ def FileX.touch(s, mtime: Time.now)
31
+ RXFReadWrite.touch(s, mtime: mtime)
32
+ end
33
+
34
+ def FileX.write(x, s)
35
+ RXFReadWrite.write(x, s)
36
+ end
37
+ end
38
+
39
+
40
+ class RXFReadWriteException < Exception
41
+ end
42
+
43
+ class RXFReadWrite < RXFReader
44
+ using ColouredText
45
+
46
+
47
+ def self.chdir(x)
48
+
49
+ # We can use @fs within chdir() to flag the current file system.
50
+ # Allowing us to use relative paths with FileX operations instead
51
+ # of explicitly stating the path each time. e.g. touch 'foo.txt'
52
+ #
53
+
54
+ if x[/^file:\/\//] or File.exists?(File.dirname(x)) then
55
+
56
+ @fs = :local
57
+ FileUtils.chdir x
19
58
 
20
- type = FileX.filetype(filename)
59
+ elsif x[/^dfs:\/\//]
21
60
 
22
- filex = case type
23
- when :file
24
- File
25
- when :dfs
26
- DfsFile
61
+ host = x[/(?<=dfs:\/\/)[^\/]+/]
62
+ @fs = 'dfs://' + host
63
+ DfsFile.chdir x
64
+
65
+ end
66
+
67
+ end
68
+
69
+ def self.glob(s)
70
+
71
+ if s[/^dfs:\/\//] then
72
+ DfsFile.glob(s)
27
73
  else
28
- nil
74
+ Dir.glob(s)
29
75
  end
30
76
 
31
- return nil unless filex
77
+ end
78
+
79
+ def self.mkdir(x)
32
80
 
33
- filex.exists? filename
81
+ if x[/^file:\/\//] or File.exists?(File.dirname(x)) then
82
+ FileUtils.mkdir x
83
+ elsif x[/^dfs:\/\//]
84
+ DfsFile.mkdir x
85
+ end
34
86
 
35
87
  end
36
88
 
89
+ def self.mkdir_p(x)
37
90
 
38
- def FileX.filetype(x)
91
+ if x[/^dfs:\/\//] then
92
+ DfsFile.mkdir_p x
93
+ else
94
+ FileUtils.mkdir_p x
95
+ end
39
96
 
40
- return :string if x.lines.length > 1
97
+ end
41
98
 
42
- case x
43
- when /^https?:\/\//
44
- :http
45
- when /^dfs:\/\//
46
- :dfs
47
- when /^file:\/\//
48
- :file
99
+ def self.rm(filename)
100
+
101
+ case filename[/^\w+(?=:\/\/)/]
102
+ when 'dfs'
103
+ DfsFile.rm filename
49
104
  else
50
105
 
51
- if File.exists?(x) then
52
- :file
106
+ if File.basename(filename) =~ /\*/ then
107
+
108
+ Dir.glob(filename).each do |file|
109
+
110
+ begin
111
+ FileUtils.rm file
112
+ rescue
113
+ puts ('RXFReadWrite#rm: ' + file + ' is a Directory').warning
114
+ end
115
+
116
+ end
117
+
53
118
  else
54
- :text
119
+ FileUtils.rm filename
55
120
  end
56
121
 
57
122
  end
58
- end
59
123
 
60
- def FileX.write(x, s)
61
- RXFReadWrite.write(x, s)
62
124
  end
63
- end
64
125
 
126
+ def self.rm_r(filename, force: false)
65
127
 
66
- class RXFReadWriteException < Exception
67
- end
128
+ case filename[/^\w+(?=:\/\/)/]
129
+ when 'dfs'
130
+ DfsFile.rm_r filename, force: force
131
+ else
68
132
 
69
- class RXFReadWrite < RXFReader
70
- using ColouredText
133
+ if File.basename(filename) =~ /\*/ then
71
134
 
72
- def self.glob(s)
135
+ Dir.glob(filename).each do |file|
73
136
 
74
- if s[/^dfs:\/\//] then
75
- DfsFile.glob(s)
137
+ begin
138
+ FileUtils.rm_r file, force: force
139
+ rescue
140
+ puts ('RXFReadWrite#rm_r: ' + file + ' is a Directory').warning
141
+ end
142
+
143
+ end
144
+
145
+ else
146
+ FileUtils.rm_r filename, force: force
147
+ end
148
+
149
+ end
150
+
151
+ end
152
+
153
+ def self.touch(filename, mtime: Time.now)
154
+
155
+ case filename[/^\w+(?=:\/\/)/]
156
+ when 'dfs'
157
+ DfsFile.touch filename, mtime: mtime
76
158
  else
77
- Dir.glob(s)
159
+ FileUtils.touch filename, mtime: mtime
78
160
  end
79
161
 
80
162
  end
163
+
81
164
  def self.write(location, s=nil)
82
165
 
83
166
  case location
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rxfreadwrite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,10 +35,30 @@ cert_chain:
35
35
  gnYmJHVhKvNaFwL4ryulhkA+n8o3Ve6Kzo/AGlO2+Ge6H0bqIUbS8UisqDa7IwlY
36
36
  tvleW582+lzMrpAfWdGb4VFX
37
37
  -----END CERTIFICATE-----
38
- date: 2022-02-20 00:00:00.000000000 Z
38
+ date: 2022-02-22 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rxfreader
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.2'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.2.1
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.2'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.2.1
60
+ - !ruby/object:Gem::Dependency
61
+ name: drb_fileclient-readwrite
42
62
  requirement: !ruby/object:Gem::Requirement
43
63
  requirements:
44
64
  - - "~>"
@@ -46,7 +66,7 @@ dependencies:
46
66
  version: '0.1'
47
67
  - - ">="
48
68
  - !ruby/object:Gem::Version
49
- version: 0.1.2
69
+ version: 0.1.0
50
70
  type: :runtime
51
71
  prerelease: false
52
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +76,7 @@ dependencies:
56
76
  version: '0.1'
57
77
  - - ">="
58
78
  - !ruby/object:Gem::Version
59
- version: 0.1.2
79
+ version: 0.1.0
60
80
  description:
61
81
  email: digital.robertson@gmail.com
62
82
  executables: []
metadata.gz.sig CHANGED
Binary file